summaryrefslogtreecommitdiffstats
path: root/panel
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2008-08-24 10:07:58 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2008-08-24 10:07:58 +0800
commitb16711ce6ea5e94a0e001ea8446b469a42046dc5 (patch)
treee54ab8a90bbd64d553649d6e0476839ec15e2dd4 /panel
parent99261ce1e497fbd6dc20a3b61a30bb3b60bcc3eb (diff)
downloadibus-b16711ce6ea5e94a0e001ea8446b469a42046dc5.tar.gz
ibus-b16711ce6ea5e94a0e001ea8446b469a42046dc5.tar.xz
ibus-b16711ce6ea5e94a0e001ea8446b469a42046dc5.zip
Support auto hide
Diffstat (limited to 'panel')
-rw-r--r--panel/languagebar.py17
-rw-r--r--panel/panel.py11
2 files changed, 23 insertions, 5 deletions
diff --git a/panel/languagebar.py b/panel/languagebar.py
index d9053f7..33266d9 100644
--- a/panel/languagebar.py
+++ b/panel/languagebar.py
@@ -46,6 +46,8 @@ class LanguageBar(gtk.Toolbar):
def __init__ (self):
super(LanguageBar, self).__init__()
+ self.__auto_hide = False
+ self.__has_focus = False
self.set_style(gtk.TOOLBAR_ICONS)
self.set_show_arrow(False)
self.set_property("icon-size", ICON_SIZE)
@@ -107,6 +109,16 @@ class LanguageBar(gtk.Toolbar):
def reset(self):
self.__remove_properties()
+ def set_auto_hide(self, auto_hide):
+ self.__auto_hide = auto_hide
+ if self.__has_focus:
+ self.focus_in()
+ else:
+ self.focus_out()
+
+ def get_auto_hide(self):
+ return self.__auto_hide
+
def register_properties(self, props):
self.__remove_properties()
# create new properties
@@ -149,11 +161,16 @@ class LanguageBar(gtk.Toolbar):
gtk.Toolbar.hide_all(self)
def focus_in(self):
+ self.__has_focus = True
self.__im_menu.set_sensitive(True)
+ self.__toplevel.show_all()
self.__toplevel.window.raise_()
def focus_out(self):
+ self.__has_focus = False
self.__im_menu.set_sensitive(False)
+ if self.__auto_hide:
+ self.__toplevel.hide_all()
gobject.type_register(LanguageBar, "IBusLanguageBar")
diff --git a/panel/panel.py b/panel/panel.py
index eb4ccf4..02a890e 100644
--- a/panel/panel.py
+++ b/panel/panel.py
@@ -189,15 +189,16 @@ class Panel(ibus.PanelBase):
self.__candidate_panel.set_orientation(gtk.ORIENTATION_VERTICAL)
def __config_load_auto_hide(self):
- self.__auto_hide = self.__bus.config_get_value("/panel/auto_hide", False)
+ auto_hide = self.__bus.config_get_value("/panel/auto_hide", False)
+ self.__language_bar.set_auto_hide(auto_hide)
def __config_load_custom_font(self):
- self.__use_custom_font = self.__bus.config_get_value("/panel/use_custom_font", False)
+ use_custom_font = self.__bus.config_get_value("/panel/use_custom_font", False)
font_name = gtk.settings_get_default().get_property("gtk-font-name")
- self.__custom_font = self.__bus.config_get_value("/panel/custom_font", font_name)
+ custom_font = self.__bus.config_get_value("/panel/custom_font", font_name)
style_string = 'style "custom-font" { font_name="%s" }\nclass "IBusPanelLabel" style "custom-font"\n'
- if self.__use_custom_font:
- style_string = style_string % self.__custom_font
+ if use_custom_font:
+ style_string = style_string % custom_font
gtk.rc_parse_string(style_string)
else:
style_string = style_string % ""