From c56d1b3bf2a2bf9eb6de4bbb985c6ba58c166a04 Mon Sep 17 00:00:00 2001 From: Huang Peng Date: Wed, 15 Oct 2008 07:56:03 +0800 Subject: [PATCH] Fix keyboard shortcut setup problems --- daemon/bus.py | 16 ++++++++++++++++ setup/main.py | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) 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)) -- 2.7.4