diff options
author | Live System User <liveuser@localhost.localdomain> | 2009-02-26 03:02:54 (GMT) |
---|---|---|
committer | Live System User <liveuser@localhost.localdomain> | 2009-02-26 03:02:54 (GMT) |
commit | c6619e0bec3cb53fdb42f35cb26b24fbbb2cdfce (patch) | |
tree | 762e3a3b66f78ccdbd067342c86e51e6dc62cfc4 | |
parent | a22a4dc9a9a486d762e7cae08e7f1439ed123135 (diff) |
Fix beeps when typing under SoaS.
-rw-r--r-- | keyboard.py | 22 | ||||
-rw-r--r-- | lessonscreen.py | 20 |
2 files changed, 19 insertions, 23 deletions
diff --git a/keyboard.py b/keyboard.py index d850dfb..c1f1e02 100644 --- a/keyboard.py +++ b/keyboard.py @@ -397,18 +397,18 @@ class KeyboardWidget(KeyboardData, gtk.DrawingArea): self.modify_bg(gtk.STATE_NORMAL, self.get_colormap().alloc_color('#d0d0d0')) # Connect keyboard grabbing and releasing callbacks. - self.connect('realize', self._realize_cb) - self.connect('unrealize', self._unrealize_cb) + #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. - 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_release_cb) - self.key_release_cb_id = self.root_window.connect('key-release-event', self._key_press_release_cb) + #def _realize_cb(self, widget): + # # Setup keyboard event snooping in the root window. + # 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_release_cb) + # self.key_release_cb_id = self.root_window.connect('key-release-event', self._key_press_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 _unrealize_cb(self, widget): + # self.root_window.disconnect(self.key_press_cb_id) + # self.root_window.disconnect(self.key_release_cb_id) def set_layout(self, layout): """Sets the keyboard's layout from a layout description.""" @@ -539,7 +539,7 @@ class KeyboardWidget(KeyboardData, gtk.DrawingArea): return True - def _key_press_release_cb(self, widget, event): + def key_press_release_cb(self, widget, event): key = self.key_scan_map.get(event.hardware_keycode) if key: key['key-pressed'] = event.type == gtk.gdk.KEY_PRESS diff --git a/lessonscreen.py b/lessonscreen.py index 2f222ad..33b15eb 100644 --- a/lessonscreen.py +++ b/lessonscreen.py @@ -140,22 +140,15 @@ class LessonScreen(gtk.VBox): self.timer_id = None self.begin_lesson() - - # Used to suppress warning beeps on keypresses. - def keynav_failed_cb(self, widget, dir): - print "keynav failed" - return False def realize_cb(self, widget): self.activity.add_events(gtk.gdk.KEY_PRESS_MASK|gtk.gdk.KEY_RELEASE_MASK) self.key_press_cb_id = self.activity.connect('key-press-event', self.key_cb) self.key_release_cb_id = self.activity.connect('key-release-event', self.key_cb) - self.keynav_failed_cb_id = self.activity.connect('keynav-failed', self.keynav_failed_cb) def unrealize_cb(self, widget): self.activity.disconnect(self.key_press_cb_id) self.activity.disconnect(self.key_release_cb_id) - self.activity.disconnect(self.keynav_failed_cb_id) def start_timer(self): self.start_time = time.time() @@ -352,15 +345,18 @@ class LessonScreen(gtk.VBox): self.hilite_next_key() def key_cb(self, widget, event): + # Pass events on to the keyboard. + self.keyboard.key_press_release_cb(widget, event) + # Ignore either press or release events, depending on mode. if self.mode == 'key' and event.type == gtk.gdk.KEY_PRESS: - return False + return True if self.mode != 'key' and event.type == gtk.gdk.KEY_RELEASE: - return False + return True # Ignore hotkeys. if event.state & (gtk.gdk.CONTROL_MASK | gtk.gdk.MOD1_MASK): - return False + return True # Extract information about the key pressed. key = gtk.gdk.keyval_to_unicode(event.keyval) @@ -448,13 +444,13 @@ class LessonScreen(gtk.VBox): self.advance_step() else: self.begin_line() - return False + return True self.update_stats() self.hilite_next_key() - return False + return True def hilite_next_key(self): if not self.line: |