summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfujiwarat <takao.fujiwara1@gmail.com>2010-10-28 18:54:42 +0900
committerfujiwarat <takao.fujiwara1@gmail.com>2010-10-28 18:54:42 +0900
commit8e3306424226f907aa585427689193ae7b0f9d74 (patch)
treeb764938329d5ea11553e40d315498818a501e330
parent325e69f5abb193c6127bdeb3ad738e17c1cfcb8a (diff)
downloadibus-anthy-8e3306424226f907aa585427689193ae7b0f9d74.tar.gz
Supported ibus.engine.update_preedit_text_with_mode
-rw-r--r--engine/engine.py34
1 files changed, 30 insertions, 4 deletions
diff --git a/engine/engine.py b/engine/engine.py
index a190f0b..3d813eb 100644
--- a/engine/engine.py
+++ b/engine/engine.py
@@ -119,6 +119,7 @@ class Engine(ibus.EngineBase):
self.__dict_mode = 0
self.__prop_dict = {}
self.__is_utf8 = (getpreferredencoding().lower() == "utf-8")
+ self.__ibus_version = 0
# self.__lookup_table = ibus.LookupTable(page_size=9, round=True)
size = self.__prefs.get_value('common', 'page_size')
@@ -139,9 +140,22 @@ class Engine(ibus.EngineBase):
'ImmediateMulti', 'ImmediateSingle'][mode]
self.__segment_mode_activate(mode, ibus.PROP_STATE_CHECKED)
+ self.__init_ibus_version()
+
# use reset to init values
self.__reset()
+ def __init_ibus_version(self):
+ version_str = ibus.get_version()
+ if version_str == None:
+ return
+ versions = version_str.split('.')
+ if len(versions) < 3:
+ return
+ version_str = "%03d%03d%03d" % \
+ (int(versions[0]), int(versions[1]), int(versions[2]))
+ self.__ibus_version = long(version_str)
+
# reset values of engine
def __reset(self):
self.__preedit_ja_string = jastring.JaString(Engine.__typing_mode)
@@ -372,7 +386,14 @@ class Engine(ibus.EngineBase):
self._remove_dict_file(file)
def update_preedit(self, string, attrs, cursor_pos, visible):
- self.update_preedit_text(ibus.Text(string, attrs), cursor_pos, visible)
+ mode = self.__prefs.get_value('common', 'behavior_on_focus_out')
+ if self.__ibus_version >= 1003000 and mode == 1:
+ self.update_preedit_text(ibus.Text(string, attrs),
+ cursor_pos, visible,
+ ibus.common.IBUS_ENGINE_PREEDIT_COMMIT)
+ else:
+ self.update_preedit_text(ibus.Text(string, attrs),
+ cursor_pos, visible)
def update_aux_string(self, string, attrs, visible):
self.update_auxiliary_text(ibus.Text(string, attrs), visible)
@@ -727,16 +748,21 @@ class Engine(ibus.EngineBase):
def focus_in(self):
self.register_properties(self.__prop_list)
self.__refresh_typing_mode_property()
+ mode = self.__prefs.get_value('common', 'behavior_on_focus_out')
+ if mode == 2:
+ self.__update_input_chars()
# self.__reset()
# self.__invalidate()
def focus_out(self):
mode = self.__prefs.get_value('common', 'behavior_on_focus_out')
- if mode == 0:
+ if mode == 0 or mode == 1:
self.__reset()
self.__invalidate()
- elif mode == 1:
- self.__on_key_return()
+
+ def disable(self):
+ self.__reset()
+ self.__invalidate()
def reset(self):
self.__reset()