Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-09-09 17:11:58 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-09-09 17:11:58 (GMT)
commitc69bbe3341ae7383d3684964b4884be748939c53 (patch)
treee326ac34bd72df70ff64bb91d13a8722cc2c4122
parentff2dd6cc0e55aeceaf63cde10f58db3cec18493d (diff)
Simple scheme for hidding ToolbarBox subpalettes #1300
-rw-r--r--src/sugar/graphics/toolbarbox.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/sugar/graphics/toolbarbox.py b/src/sugar/graphics/toolbarbox.py
index 8cc52df..a716734 100644
--- a/src/sugar/graphics/toolbarbox.py
+++ b/src/sugar/graphics/toolbarbox.py
@@ -188,7 +188,7 @@ class _ToolbarPalette(PaletteWindow):
PaletteWindow.__init__(self, **kwargs)
self.toolbar_box = None
self.set_border_width(0)
- self._focus = 0
+ self._has_focus = False
group = palettegroup.get_group('default')
group.connect('popdown', self.__group_popdown_cb)
@@ -196,26 +196,23 @@ class _ToolbarPalette(PaletteWindow):
def on_invoker_enter(self):
PaletteWindow.on_invoker_enter(self)
- self._handle_focus(+1)
+ self._set_focus(True)
def on_invoker_leave(self):
PaletteWindow.on_invoker_leave(self)
- self._handle_focus(-1)
+ self._set_focus(False)
def on_enter(self, event):
PaletteWindow.on_enter(self, event)
- self._handle_focus(+1)
+ self._set_focus(True)
def on_leave(self, event):
PaletteWindow.on_enter(self, event)
- self._handle_focus(-1)
+ self._set_focus(False)
- def _handle_focus(self, delta):
- self._focus += delta
- if self._focus not in (0, 1):
- logging.error('_Palette._focus=%s not in (0, 1)', self._focus)
-
- if self._focus == 0:
+ def _set_focus(self, new_focus):
+ self._has_focus = new_focus
+ if not self._has_focus:
group = palettegroup.get_group('default')
if not group.is_up():
self.popdown()
@@ -235,7 +232,7 @@ class _ToolbarPalette(PaletteWindow):
PaletteWindow.popup(self, immediate)
def __group_popdown_cb(self, group):
- if self._focus == 0:
+ if not self._has_focus:
self.popdown(immediate=True)