diff options
author | Peng Huang <shawn.p.huang@gmail.com> | 2011-06-06 09:30:27 -0400 |
---|---|---|
committer | Peng Huang <shawn.p.huang@gmail.com> | 2011-06-06 09:30:27 -0400 |
commit | 52425daa537a32bed1781958e1ef62dbf199ad8b (patch) | |
tree | 0bb6bb25239f314131f6e18b07cd5f0b3d107e77 /ibus | |
parent | 4d15995dc22f4ec3006e40586f86d0e2a5447af6 (diff) | |
download | ibus-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.py | 26 | ||||
-rw-r--r-- | ibus/interface/iinputcontext.py | 3 |
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 |