diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-07-04 10:33:12 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-07-04 10:33:12 (GMT) |
commit | 70e6d08f8d0fc385b8e7c539b09fced609b9c5a4 (patch) | |
tree | 5e420fc63ece0bc29b6b1c12a3cebeb050b84485 /sugar | |
parent | 1796cbc0c7be1978628cce88e7686ce641ab32dd (diff) |
Hide active palette if zoom level changes.
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/graphics/palette.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py index ef1a61c..9c23c2f 100644 --- a/sugar/graphics/palette.py +++ b/sugar/graphics/palette.py @@ -21,6 +21,7 @@ import gtk import gobject import time import hippo +import dbus from sugar.graphics import animator from sugar.graphics import units @@ -87,6 +88,15 @@ class Palette(gobject.GObject): self._menu.connect('button-press-event', self._button_press_event_cb) + gobject.idle_add(self._listen_for_zoom_level_change) + + def _listen_for_zoom_level_change(self): + bus = dbus.Bus() + proxy = bus.get_object('org.laptop.Shell', '/org/laptop/Shell') + shell_service = dbus.Interface(proxy, 'org.laptop.Shell') + shell_service.connect_to_signal('ZoomLevelChanged', + self._zoom_level_changed_cb) + def set_primary_text(self, label, accel_path=None): self._primary.set_label(label, accel_path) @@ -234,6 +244,9 @@ class Palette(gobject.GObject): def _button_press_event_cb(self, widget, event): pass + def _zoom_level_changed_cb(self, zoom_level): + self._hide() + class _PrimaryMenuItem(gtk.MenuItem): def __init__(self, label, accel_path): gtk.MenuItem.__init__(self) @@ -378,6 +391,8 @@ class CanvasInvoker(Invoker): context = self._item.get_context() if context: x, y = context.translate_to_screen(self._item) + else: + x, y = 0, 0 width, height = self._item.get_allocation() |