Fix keyboard shortcut setup problems
authorHuang Peng <shawn.p.huang@gmail.com>
Tue, 14 Oct 2008 23:56:03 +0000 (07:56 +0800)
committerHuang Peng <shawn.p.huang@gmail.com>
Tue, 14 Oct 2008 23:56:03 +0000 (07:56 +0800)
daemon/bus.py
setup/main.py

index 2cd9f46..5c5cb3a 100644 (file)
@@ -21,6 +21,7 @@
 
 import sys
 import ibus
+import gobject
 from ibus import keysyms
 from ibus import modifier
 from contextmanager import ContextManager
@@ -68,7 +69,9 @@ class IBus(ibus.Object):
         self.__connections = list()
 
         self.__prev_key = None
+        self.__config_load_settings ()
 
+    def __config_load_settings (self):
         self.__shortcut_trigger = self.__load_config_shortcut(
                 "general", "keyboard_shortcut_trigger",
                 ibus.CONFIG_GENERAL_SHORTCUT_TRIGGER_DEFAULT)
@@ -526,9 +529,11 @@ class IBus(ibus.Object):
         self.__config.destroy()
         self.__config = Config(ibusconn)
         self.__install_config_handlers()
+        gobject.idle_add (self.__config_load_settings)
 
     def __install_config_handlers(self):
         signals = (
+            ("value-changed", self.__config_value_changed_cb),
             ("destroy", self.__config_destroy_cb),
         )
         for signal, handler in signals:
@@ -552,6 +557,17 @@ class IBus(ibus.Object):
 
         return keyval, keymask
 
+    def __config_value_changed_cb (self, config, section, name, value):
+        if section == "general":
+            if name == "keyboard_shortcut_trigger":
+                self.__shortcut_trigger = self.__load_config_shortcut(
+                        "general", "keyboard_shortcut_trigger",
+                        ibus.CONFIG_GENERAL_SHORTCUT_TRIGGER_DEFAULT)
+            elif name =="keyboard_shortcut_next_engine":
+                self.__shortcut_next_engine = self.__load_config_shortcut(
+                        "general", "keyboard_shortcut_next_engine",
+                        ibus.CONFIG_GENERAL_SHORTCUT_NEXT_ENGINE_DEFAULT)
+
     def __config_destroy_cb(self, config):
         if config == self.__config:
             self.__config = DefaultConfig()
index d595927..c860da8 100644 (file)
@@ -259,7 +259,7 @@ class Setup(object):
         dialog.destroy()
         if id != gtk.RESPONSE_OK:
             return
-        self.__bus.config_set_value(section, name, shortcuts)
+        self.__bus.config_set_value(section, _name, shortcuts)
         entry.set_text("; ".join(shortcuts))