Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBenjamin Berg <benjamin@sipsolutions.net>2008-02-25 15:01:42 (GMT)
committer Benjamin Berg <benjamin@sipsolutions.net>2008-02-25 15:01:42 (GMT)
commit326f71e7e4373b9f0211bb6b8308a83e274d8cb5 (patch)
treeeaa50240abef77119b8d9cfd6d23e58e809bdf41 /src
parent7297f31a366c53c01a6c5d059616b31ead78e5f4 (diff)
Ticket #4084. Hide palettes when switching zoom levels.
It now uses visibility-notif-event instead of focus-in/out to deactivate the view.
Diffstat (limited to 'src')
-rw-r--r--src/view/home/HomeWindow.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/view/home/HomeWindow.py b/src/view/home/HomeWindow.py
index f1f46e9..dbd20c2 100644
--- a/src/view/home/HomeWindow.py
+++ b/src/view/home/HomeWindow.py
@@ -19,6 +19,7 @@ import hippo
import cairo
from sugar.graphics import style
+from sugar.graphics import palettegroup
from view.home.MeshBox import MeshBox
from view.home.HomeBox import HomeBox
@@ -49,8 +50,7 @@ class HomeWindow(gtk.Window):
self.realize()
self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DESKTOP)
self.connect("key-release-event", self._key_release_cb)
- self.connect('focus-in-event', self._focus_in_cb)
- self.connect('focus-out-event', self._focus_out_cb)
+ self.connect('visibility-notify-event', self._visibility_notify_event_cb)
self._enter_sid = self.connect('enter-notify-event',
self._enter_notify_event_cb)
@@ -95,6 +95,8 @@ class HomeWindow(gtk.Window):
self._home_box.release()
def _deactivate_view(self):
+ group = palettegroup.get_group("default")
+ group.popdown()
if self._level == ShellModel.ZOOM_HOME:
self._home_box.suspend()
elif self._level == ShellModel.ZOOM_MESH:
@@ -106,11 +108,11 @@ class HomeWindow(gtk.Window):
elif self._level == ShellModel.ZOOM_MESH:
self._mesh_box.resume()
- def _focus_in_cb(self, widget, event):
- self._activate_view()
-
- def _focus_out_cb(self, widget, event):
- self._deactivate_view()
+ def _visibility_notify_event_cb(self, window, event):
+ if event.state == gtk.gdk.VISIBILITY_FULLY_OBSCURED:
+ self._deactivate_view()
+ else:
+ self._activate_view()
def set_zoom_level(self, level):
self._deactivate_view()