Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLive 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)
commitc6619e0bec3cb53fdb42f35cb26b24fbbb2cdfce (patch)
tree762e3a3b66f78ccdbd067342c86e51e6dc62cfc4
parenta22a4dc9a9a486d762e7cae08e7f1439ed123135 (diff)
Fix beeps when typing under SoaS.
-rw-r--r--keyboard.py22
-rw-r--r--lessonscreen.py20
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: