Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-07-04 10:33:12 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-07-04 10:33:12 (GMT)
commit70e6d08f8d0fc385b8e7c539b09fced609b9c5a4 (patch)
tree5e420fc63ece0bc29b6b1c12a3cebeb050b84485 /sugar
parent1796cbc0c7be1978628cce88e7686ce641ab32dd (diff)
Hide active palette if zoom level changes.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/graphics/palette.py15
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()