Hi,
Not sure whether this is a pygtk or a gtk issue, but...
I've written an app which relies on key-press and key-release events.
Under windows XP, python 2.6, pygtk 2.16 and gtk+ 2.18 there are no
problems, however under ubuntu 9.10 (32 & 64bit) I'm seeing a
key-release event following each key-press event whilst a key is held down.
I've attached a small test case to demonstrate.
I've been scratching my head over this one for a while & can't figure it
out...
TIA,
Andy
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
import os
import sys
#gtk
import pygtk
if sys.platform != 'win32':
pygtk.require('2.0')
import gtk
import gobject
class WinTest:
"""Main Window"""
def __init__(self):
"""test"""
#build the window
self.winMain = gtk.Window()
#set window properties
self.winMain.set_events(
gtk.gdk.KEY_PRESS_MASK |
gtk.gdk.KEY_RELEASE_MASK)
print "events=",self.winMain.get_events()
self.winMain.connect('key-press-event', self.on_winMain_key_press)
self.winMain.connect('key-release-event', self.on_winMain_key_press)
self.winMain.connect('delete-event', self.on_winMain_delete_event)
self.winMain.set_size_request(300, 400)
self.winMain.show()
def on_winMain_key_press(self, widget, event, *args):
"""handle keyboard events"""
keyname = gtk.gdk.keyval_name(event.keyval).upper()
if event.type == gtk.gdk.KEY_PRESS:
if keyname == 'ESCAPE':
self.on_winMain_delete_event()
else:
print "key press=", keyname
elif event.type == gtk.gdk.KEY_RELEASE:
print "key release=", keyname
return False
def on_winMain_delete_event(self, *args):
"""done, quit the application"""
#exit gtk loop
gtk.main_quit()
return False
if __name__ == '__main__':
#instantiate main GUI window class
app = WinTest()
#and... go...
gtk.main()
_______________________________________________
pygtk mailing list [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/