summaryrefslogtreecommitdiff
path: root/ibus
diff options
context:
space:
mode:
authorPeng Huang <shawn.p.huang@gmail.com>2011-06-06 09:30:27 -0400
committerPeng Huang <shawn.p.huang@gmail.com>2011-06-06 09:30:27 -0400
commit52425daa537a32bed1781958e1ef62dbf199ad8b (patch)
tree0bb6bb25239f314131f6e18b07cd5f0b3d107e77 /ibus
parent4d15995dc22f4ec3006e40586f86d0e2a5447af6 (diff)
downloadibus-52425daa537a32bed1781958e1ef62dbf199ad8b.tar.gz
Fix Python input context binding.
Export "forward-key-event" and "delete-surrounding-text" signals to Python; clear __needs_surrounding_text property on "enabled" and "disabled" signals. BUG=none TEST=briefly tested, at least I don't see any regression Review URL: http://codereview.appspot.com/4437062
Diffstat (limited to 'ibus')
-rw-r--r--ibus/inputcontext.py26
-rw-r--r--ibus/interface/iinputcontext.py3
2 files changed, 28 insertions, 1 deletions
diff --git a/ibus/inputcontext.py b/ibus/inputcontext.py
index d143727d..ceeb56d1 100644
--- a/ibus/inputcontext.py
+++ b/ibus/inputcontext.py
@@ -116,6 +116,16 @@ class InputContext(object.Object):
gobject.TYPE_NONE,
()
),
+ "forward-key-event" : (
+ gobject.SIGNAL_RUN_LAST,
+ gobject.TYPE_NONE,
+ (gobject.TYPE_UINT, gobject.TYPE_UINT, gobject.TYPE_UINT)
+ ),
+ "delete-surrounding-text" : (
+ gobject.SIGNAL_RUN_LAST,
+ gobject.TYPE_NONE,
+ (gobject.TYPE_INT, gobject.TYPE_UINT)
+ ),
}
def __init__(self, bus, path, watch_signals=False):
@@ -142,8 +152,14 @@ class InputContext(object.Object):
self.__signal_matches.append(m)
m = self.__context.connect_to_signal("RequireSurroundingText", self.__require_surrounding_text_cb)
self.__signal_matches.append(m)
+ m = self.__context.connect_to_signal("Enabled", self.__enabled_cb)
+ self.__signal_matches.append(m)
+ m = self.__context.connect_to_signal("Disabled", self.__disabled_cb)
+ self.__signal_matches.append(m)
- m = self.__context.connect_to_signal("Enabled", lambda *args: self.emit("enabled"))
+ m = self.__context.connect_to_signal("ForwardKeyEvent", lambda *args: self.emit("forward-key-event", *args))
+ self.__signal_matches.append(m)
+ m = self.__context.connect_to_signal("DeleteSurroundingText", lambda *args: self.emit("delete-surrounding-text", *args))
self.__signal_matches.append(m)
m = self.__context.connect_to_signal("Disabled", lambda *args: self.emit("disabled"))
self.__signal_matches.append(m)
@@ -168,6 +184,14 @@ class InputContext(object.Object):
m = self.__context.connect_to_signal("CursorDownLookupTable", lambda *args: self.emit("cursor-down-lookup-table"))
self.__signal_matches.append(m)
+ def __enabled_cb(self, *args):
+ self.__needs_surrounding_text = False
+ self.emit("enabled")
+
+ def __disabled_cb(self, *args):
+ self.__needs_surrounding_text = False
+ self.emit("disabled")
+
def __commit_text_cb(self, *args):
text = serializable.deserialize_object(args[0])
self.emit("commit-text", text)
diff --git a/ibus/interface/iinputcontext.py b/ibus/interface/iinputcontext.py
index 2db1c9b5..1d3cd2a6 100644
--- a/ibus/interface/iinputcontext.py
+++ b/ibus/interface/iinputcontext.py
@@ -95,6 +95,9 @@ class IInputContext(dbus.service.Object):
@signal(signature="uuu")
def ForwardKeyEvent(self, keyval, keycode, state): pass
+ @signal(signature="iu")
+ def DeleteSurroundingText(self, offset_from_cursor, nchars): pass
+
@signal(signature="vub")
def UpdatePreeditText(self, text, cursor_pos, visible): pass