diff options
| author | Huang Peng <shawn.p.huang@gmail.com> | 2008-08-24 10:07:58 +0800 |
|---|---|---|
| committer | Huang Peng <shawn.p.huang@gmail.com> | 2008-08-24 10:07:58 +0800 |
| commit | b16711ce6ea5e94a0e001ea8446b469a42046dc5 (patch) | |
| tree | e54ab8a90bbd64d553649d6e0476839ec15e2dd4 /panel | |
| parent | 99261ce1e497fbd6dc20a3b61a30bb3b60bcc3eb (diff) | |
| download | ibus-b16711ce6ea5e94a0e001ea8446b469a42046dc5.tar.gz ibus-b16711ce6ea5e94a0e001ea8446b469a42046dc5.tar.xz ibus-b16711ce6ea5e94a0e001ea8446b469a42046dc5.zip | |
Support auto hide
Diffstat (limited to 'panel')
| -rw-r--r-- | panel/languagebar.py | 17 | ||||
| -rw-r--r-- | panel/panel.py | 11 |
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 % "" |
