summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2008-10-15 07:56:03 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2008-10-15 07:56:03 +0800
commitc56d1b3bf2a2bf9eb6de4bbb985c6ba58c166a04 (patch)
tree84eb31c1940fa8df2cd8b67eb2c34aad3875498e
parent5a2f8e1d9d0f14651d9dbd711b77e5f36756fde4 (diff)
downloadibus-c56d1b3bf2a2bf9eb6de4bbb985c6ba58c166a04.tar.gz
ibus-c56d1b3bf2a2bf9eb6de4bbb985c6ba58c166a04.tar.xz
ibus-c56d1b3bf2a2bf9eb6de4bbb985c6ba58c166a04.zip
Fix keyboard shortcut setup problems
-rw-r--r--daemon/bus.py16
-rw-r--r--setup/main.py2
2 files changed, 17 insertions, 1 deletions
diff --git a/daemon/bus.py b/daemon/bus.py
index 2cd9f46..5c5cb3a 100644
--- a/daemon/bus.py
+++ b/daemon/bus.py
@@ -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()
diff --git a/setup/main.py b/setup/main.py
index d595927..c860da8 100644
--- a/setup/main.py
+++ b/setup/main.py
@@ -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))