diff options
author | Huang Peng <shawn.p.huang@gmail.com> | 2008-08-27 18:45:50 +0800 |
---|---|---|
committer | Huang Peng <shawn.p.huang@gmail.com> | 2008-08-27 18:45:50 +0800 |
commit | 4a2a57d638f497c8d1366faceb800cf4117aeb77 (patch) | |
tree | 548b549b4d1178f20b5e0c368395e2d68985b342 | |
parent | 63c08d5a33e830edfe056ef22a0e802ea61e4ed3 (diff) | |
download | ibus-4a2a57d638f497c8d1366faceb800cf4117aeb77.tar.gz ibus-4a2a57d638f497c8d1366faceb800cf4117aeb77.tar.xz ibus-4a2a57d638f497c8d1366faceb800cf4117aeb77.zip |
Auto hide language bar when disable input method.
-rw-r--r-- | panel/languagebar.py | 17 | ||||
-rw-r--r-- | panel/panel.py | 2 |
2 files changed, 17 insertions, 2 deletions
diff --git a/panel/languagebar.py b/panel/languagebar.py index 33266d9..1dda039 100644 --- a/panel/languagebar.py +++ b/panel/languagebar.py @@ -47,6 +47,7 @@ class LanguageBar(gtk.Toolbar): def __init__ (self): super(LanguageBar, self).__init__() self.__auto_hide = False + self.__enabled = False self.__has_focus = False self.set_style(gtk.TOOLBAR_ICONS) self.set_show_arrow(False) @@ -109,6 +110,17 @@ class LanguageBar(gtk.Toolbar): def reset(self): self.__remove_properties() + def set_enabled(self, enabled): + self.__enabled = enabled + if self.__enabled and self.__has_focus: + self.__toplevel.show_all() + self.__toplevel.window.raise_() + if not self.__enabled and self.__auto_hide: + self.__toplevel.hide_all() + + def is_enabled(self): + return self.__enabled + def set_auto_hide(self, auto_hide): self.__auto_hide = auto_hide if self.__has_focus: @@ -163,8 +175,9 @@ class LanguageBar(gtk.Toolbar): def focus_in(self): self.__has_focus = True self.__im_menu.set_sensitive(True) - self.__toplevel.show_all() - self.__toplevel.window.raise_() + if self.__enabled: + self.__toplevel.show_all() + self.__toplevel.window.raise_() def focus_out(self): self.__has_focus = False diff --git a/panel/panel.py b/panel/panel.py index 1ae3323..645e85e 100644 --- a/panel/panel.py +++ b/panel/panel.py @@ -156,6 +156,7 @@ class Panel(ibus.PanelBase): self.__focus_ic = ic factory, enabled = self.__bus.get_input_context_states(ic) + self.__language_bar.set_enabled(enabled) if factory == "" or not enabled: self.__set_im_icon("ibus") @@ -175,6 +176,7 @@ class Panel(ibus.PanelBase): if not self.__focus_ic: return factory, enabled = self.__bus.get_input_context_states(self.__focus_ic) + self.__language_bar.set_enabled(enabled) if enabled == False or not factory: self.__set_im_icon("ibus") else: |