From 445b1dd413914014832feed41651bd28045ab505 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Tue, 24 Jul 2007 14:15:13 +0000 Subject: Keep primary/secondary width the same. Use full (secondary) request to check in-screen. --- (limited to 'sugar/graphics') diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py index b405901..19316d3 100644 --- a/sugar/graphics/palette.py +++ b/sugar/graphics/palette.py @@ -68,7 +68,8 @@ class Palette(gobject.GObject): def __init__(self, label, accel_path=None): gobject.GObject.__init__(self) - self._state = self._SECONDARY + self._full_request = [0, 0] + self._state = self._SECONDARY self._invoker = None self._group_id = None self._up = False @@ -168,7 +169,7 @@ class Palette(gobject.GObject): raise AssertionError def _in_screen(self, x, y): - [width, height] = self._menu.size_request() + [width, height] = self._full_request screen_area = self._invoker.get_screen_area() return x >= screen_area.x and \ @@ -237,10 +238,24 @@ class Palette(gobject.GObject): return x, y + def _update_full_request(self): + state = self._state + + self._menu.set_size_request(-1, -1) + + self._set_state(self._SECONDARY) + self._full_request = self._menu.size_request() + + self._menu.set_size_request(self._full_request[0], -1) + + self._set_state(state) + def _show(self): if self._up: return + self._update_full_request() + x = y = 0 if self._position == self.DEFAULT: -- cgit v0.9.1