summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2008-08-27 18:45:50 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2008-08-27 18:45:50 +0800
commit4a2a57d638f497c8d1366faceb800cf4117aeb77 (patch)
tree548b549b4d1178f20b5e0c368395e2d68985b342
parent63c08d5a33e830edfe056ef22a0e802ea61e4ed3 (diff)
downloadibus-4a2a57d638f497c8d1366faceb800cf4117aeb77.tar.gz
ibus-4a2a57d638f497c8d1366faceb800cf4117aeb77.tar.xz
ibus-4a2a57d638f497c8d1366faceb800cf4117aeb77.zip
Auto hide language bar when disable input method.
-rw-r--r--panel/languagebar.py17
-rw-r--r--panel/panel.py2
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: