diff options
author | fujiwarat <takao.fujiwara1@gmail.com> | 2013-09-02 14:49:03 +0900 |
---|---|---|
committer | fujiwarat <takao.fujiwara1@gmail.com> | 2013-09-02 14:49:03 +0900 |
commit | db8f61c0b09ac9cf3d5486a1844f459417cba6ec (patch) | |
tree | 9c19f3e8b14fb2689c8b899c5c79e300c839d3f5 | |
parent | 6aae0a9f145f536515e268dd6b25aa740a5edfe7 (diff) | |
download | ibus-anthy-db8f61c0b09ac9cf3d5486a1844f459417cba6ec.tar.gz |
Implemented ISO 14755 with Ctrl+Shift+u in LATIN mode.
-rw-r--r-- | engine/engine.py | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/engine/engine.py b/engine/engine.py index be66738..5bbd3ba 100644 --- a/engine/engine.py +++ b/engine/engine.py @@ -147,6 +147,13 @@ class Engine(IBus.EngineSimple): round=True) self.__prop_list = self.__init_props() + # Do not use self.do_process_key_event to work ISO 14755 + # with Ctrl+Shift+u . + # The super (parent) method of do_process_key_event is called + # loop infinitely if this class overrides it. + # self.process_key_event is not accessible too. + self.connect('process-key-event', self.__process_key_event) + self.__init_signal() # use reset to init values self.__reset() @@ -744,14 +751,6 @@ class Engine(IBus.EngineSimple): self.__invalidate() return True - def do_process_key_event(self, keyval, keycode, state): - try: - return self.__process_key_event_internal2(keyval, keycode, state) - except: - import traceback - traceback.print_exc() - return False - def do_property_activate(self, prop_name, state): if state == IBus.PropState.CHECKED: @@ -1678,7 +1677,15 @@ class Engine(IBus.EngineSimple): return repr([int(state), int(keyval)]) - def process_key_event_thumb(self, keyval, keycode, state): + def __process_key_event(self, obj, keyval, keycode, state): + try: + return self.__process_key_event_internal2(keyval, keycode, state) + except: + import traceback + traceback.print_exc() + return False + + def __process_key_event_thumb(self, keyval, keycode, state): if self.__thumb == None: self._reset_thumb() @@ -1823,7 +1830,7 @@ class Engine(IBus.EngineSimple): if Engine.__typing_mode == jastring.TYPING_MODE_THUMB_SHIFT and \ Engine.__input_mode not in [INPUT_MODE_LATIN, INPUT_MODE_WIDE_LATIN]: - return self.process_key_event_thumb(keyval, keycode, state) + return self.__process_key_event_thumb(keyval, keycode, state) is_press = (state & IBus.ModifierType.RELEASE_MASK) == 0 @@ -1849,6 +1856,14 @@ class Engine(IBus.EngineSimple): except: print >> sys.stderr, 'Unknown command = %s' % cmd + # If input mode is not LATIN, eat Ctrl+Shift+u + hex_mod_mask = IBus.ModifierType.SHIFT_MASK | \ + IBus.ModifierType.CONTROL_MASK + if Engine.__input_mode != INPUT_MODE_LATIN and \ + keyval == IBus.KEY_U and \ + state & hex_mod_mask == hex_mod_mask: + return True + if state & (IBus.ModifierType.CONTROL_MASK | IBus.ModifierType.MOD1_MASK): return False |