diff options
author | Wade Brainerd <wadetb@gmail.com> | 2008-11-21 18:01:52 (GMT) |
---|---|---|
committer | Wade Brainerd <wadetb@gmail.com> | 2008-11-21 18:01:52 (GMT) |
commit | fc297655b7b84c058985200d4f712e49dba9ac29 (patch) | |
tree | 0fc31cc7b5ee047826c2386d410d7d3ebf35e5d9 /keyboard.py | |
parent | de9ee0339ee37a8ada6ff7dfbbebe103bb493026 (diff) |
Fix bug with old lessons still hearing keypresses.
Change timer to 1 second.
Use Unicode in word wrap regex.
Diffstat (limited to 'keyboard.py')
-rw-r--r-- | keyboard.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/keyboard.py b/keyboard.py index 5dc92c3..90b959b 100644 --- a/keyboard.py +++ b/keyboard.py @@ -245,10 +245,19 @@ class Keyboard(gtk.EventBox): self.shift_down = False + # Connect keyboard grabbing and releasing callbacks. + self.connect('realize', self._realize_cb) + self.connect('unrealize', self._unrealize_cb) + + def _realize_cb(self, widget): # Setup keyboard event snooping in the root window. - root_window.add_events(gtk.gdk.KEY_PRESS_MASK | gtk.gdk.KEY_RELEASE_MASK) - root_window.connect('key-press-event', self._key_press_cb) - root_window.connect('key-release-event', self._key_release_cb) + self.root_window.add_events(gtk.gdk.KEY_PRESS_MASK | gtk.gdk.KEY_RELEASE_MASK) + self.key_press_cb_id = self.root_window.connect('key-press-event', self._key_press_cb) + self.key_release_cb_id = self.root_window.connect('key-release-event', self._key_release_cb) + + def _unrealize_cb(self, widget): + self.root_window.disconnect(self.key_press_cb_id) + self.root_window.disconnect(self.key_release_cb_id) def _build_key_list(self, layout): """Builds a list of Keys objects from a layout description. |