Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/keyboard.py
diff options
context:
space:
mode:
authorWade Brainerd <wadetb@gmail.com>2008-11-21 18:01:52 (GMT)
committer Wade Brainerd <wadetb@gmail.com>2008-11-21 18:01:52 (GMT)
commitfc297655b7b84c058985200d4f712e49dba9ac29 (patch)
tree0fc31cc7b5ee047826c2386d410d7d3ebf35e5d9 /keyboard.py
parentde9ee0339ee37a8ada6ff7dfbbebe103bb493026 (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.py15
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.