From 39ad67fdda53e367bc0af1baefa6dde3661017d7 Mon Sep 17 00:00:00 2001
From: Aleksey Lim <alsroot@member.fsf.org>
Date: Tue, 8 Sep 2009 13:05:04 +0000
Subject: Simple scheme for hidding ToolbarBox subpalettes #1300

---
 src/sugar/graphics/toolbarbox.py |   21 +++++++++------------
 1 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/sugar/graphics/toolbarbox.py b/src/sugar/graphics/toolbarbox.py
index 8cc52df..cc5edb8 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._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._handle_focus(True)
 
     def on_invoker_leave(self):
         PaletteWindow.on_invoker_leave(self)
-        self._handle_focus(-1)
+        self._handle_focus(False)
 
     def on_enter(self, event):
         PaletteWindow.on_enter(self, event)
-        self._handle_focus(+1)
+        self._handle_focus(True)
 
     def on_leave(self, event):
         PaletteWindow.on_enter(self, event)
-        self._handle_focus(-1)
+        self._handle_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 _handle_focus(self, new_focus):
+        self._focus = new_focus
+        if not self._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._focus:
             self.popdown(immediate=True)
 
 
-- 
1.6.3.3

