summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEitan Isaacson <eitan@monotonous.org>2010-03-24 11:38:09 -0700
committerEitan Isaacson <eitan@monotonous.org>2010-03-26 08:05:42 -0700
commitd523a6c363d7dd771cbc0a73a21f001b185cf3fc (patch)
tree19fe9425aca53d3d1f272d9d2dcc743a2d457110
parent0e58a963f961ef79a27b3c381672abc69feaaf99 (diff)
downloadcaribou-d523a6c363d7dd771cbc0a73a21f001b185cf3fc.tar.gz
Make key repeat work
-rw-r--r--src/caribou/keyboard.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/caribou/keyboard.py b/src/caribou/keyboard.py
index e4999c8..835d6f5 100644
--- a/src/caribou/keyboard.py
+++ b/src/caribou/keyboard.py
@@ -118,7 +118,10 @@ class CaribouKeyboard(gtk.Frame):
button = gtk.Button(key)
button.set_use_underline(False)
char = ord(key.decode('utf-8'))
- button.connect("clicked", self._send_unicode, char)
+ button.connect("pressed", self._press_cb,
+ char)
+ button.connect("released", self._release_cb,
+ char)
elif isinstance(key, tuple):
button = gtk.Button(key[0])
button.set_use_underline(False)
@@ -130,7 +133,10 @@ class CaribouKeyboard(gtk.Frame):
self.switch_layer_buttons.append(button)
else:
# regular key
- button.connect("clicked", self._send_keysym, key[1])
+ button.connect("pressed",
+ self._keysym_press_cb, key[1])
+ button.connect("released",
+ self._keysym_release_cb, key[1])
else:
pass # TODO: throw error here
@@ -141,12 +147,16 @@ class CaribouKeyboard(gtk.Frame):
def _open_prefs(self, widget):
KeyboardPreferences()
- def _send_unicode(self, widget, char):
+ def _press_cb(self, widget, char):
self.vk.press_unicode(char)
+
+ def _release_cb(self, widget, char):
self.vk.release_unicode(char)
- def _send_keysym(self, widget, char):
+ def _keysym_press_cb(self, widget, char):
self.vk.press_keysym(char)
+
+ def _keysym_release_cb(self, widget, char):
self.vk.release_keysym(char)
def __init__(self):