Hi Andre<br><br>For Paint, Tablet should work as described in<br><br><a href="http://wiki.laptop.org/go/Draw#Tablet_Support">http://wiki.laptop.org/go/Draw#Tablet_Support</a><br><br>So, we should distinguish if the event comes from Pen Tablet. Right now, if you use PT on Paint, it will work as the regular touchpad. As you said, there is a delay; I found no click events here. I have just tested Paint in a B3 with build 623 and the correct event is motion-notify; sorry for the mistake.
<br><br>Also, we were trying to recognize which device was associated with the gtk.gdk.Event object passed to the callback. The problem is that we found no difference between the pen tablet and the touchpad. We tried <a href="http://event.device.name">
event.device.name</a> and event.device.source, they have the same value for both devices. Did you do something else to detect a pen tablet event?<br><br>BTW, we tested things in Paint, your code structure is very similar to ours :)
<br><br>Regards,<br>Alexandre<br><br><div><span class="gmail_quote">2007/11/23, Andre Schmeißer <<a href="mailto:schmeisser@iupr.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">schmeisser@iupr.org
</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Maybe I'm mistaken and it does produce click events by now, but when I<br>tested it<br>the first time it didn't. But if it did, the paint activity would<br>automatically work with<br>the pen tablet, as it doesn't need to distinguish it from regular
<br>touchpad input, imo. If<br>there's click and drag just draw a line (or whatever).<br><br>The app I'm working on however (see my original post) only reacts on PT<br>input so<br>that the user is able to use the regular touchpad seperately from this.
<br>It uses<br>    gtk.Widget.set_extension_events(gtk.gdk.EXTENSION_EVENTS_ALL)<br>to receive events from the PT and checks the source device by comparing<br>|    gtk.gdk.MOTION_NOTIFY.|device.name<br>with the name of the PT device.
<br><br>The behavior I get is not ideal, though. As described there is a<br>noticeable delay<br>to the reaction. Also, the input seems to be jagged. The later is not<br>really a<br>problem, but just seems weird.<br><br>It would be nice if you could verify that behavior on your machine.
<br>I attached a small python sample which simply draws lines between event<br>coordinates. I get smooth lines using the regular touchpad and jagged ones<br>with the PT. The inital delay is noticeable without any further tools,
<br>just press<br>shortly on the tablet to let the mouse jump.<br><br>Thanks,<br>Andre Schmeisser<br><br><br>----------------- Python code -----------------<br>#!/usr/bin/env python<br>import pygtk<br>pygtk.require('
2.0
')<br>import gtk<br><br>class EventWindow:<br>   def __init__(self):<br>      self.last_x = self.last_y = -1<br>      self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)<br>      self.window.set_title("Tablet Event Visualization")
<br>      self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)<br>      self.window.connect("destroy", lambda w: gtk.main_quit())<br>      self.area = gtk.DrawingArea()<br>      self.area.set_size_request
(1200, 800)
<br>      self.window.add(self.area)<br>      self.area.set_events(gtk.gdk.POINTER_MOTION_MASK )<br>      #self.area.set_extension_events(gtk.gdk.EXTENSION_EVENTS_ALL)<br>      self.area.connect("motion-notify-event", 
self.motion_notify)<br>      self.area.show()<br>      self.window.show()<br>      self.style = self.area.get_style()<br>      self.gc = self.style.fg_gc[gtk.STATE_NORMAL]<br>      return<br><br>   def motion_notify(self, area, event):
<br>      #print <a href="http://event.device.name" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">event.device.name</a> + ':', event.x_root, event.y_root<br>      self.gc.set_rgb_fg_color
(gtk.gdk.Color(0,0,0))<br>      self.area.window.draw_line(self.gc,<br>                                  int(
self.last_x),<br>                                  int(self.last_y),<br>                                  int(event.x_root),<br>                                  int(event.y_root))<br>      self.last_x, self.last_y = event.x_root

, event.y_root<br>      self.last_event = event.get_time()<br>      return True<br><br>if __name__ == "__main__":<br>  win = EventWindow()<br>  gtk.main()<br><br><br><br></blockquote></div><br>