Simple scheme for hidding ToolbarBox subpalettes #1300
This commit is contained in:
parent
ff2dd6cc0e
commit
c69bbe3341
@ -188,7 +188,7 @@ class _ToolbarPalette(PaletteWindow):
|
|||||||
PaletteWindow.__init__(self, **kwargs)
|
PaletteWindow.__init__(self, **kwargs)
|
||||||
self.toolbar_box = None
|
self.toolbar_box = None
|
||||||
self.set_border_width(0)
|
self.set_border_width(0)
|
||||||
self._focus = 0
|
self._has_focus = False
|
||||||
|
|
||||||
group = palettegroup.get_group('default')
|
group = palettegroup.get_group('default')
|
||||||
group.connect('popdown', self.__group_popdown_cb)
|
group.connect('popdown', self.__group_popdown_cb)
|
||||||
@ -196,26 +196,23 @@ class _ToolbarPalette(PaletteWindow):
|
|||||||
|
|
||||||
def on_invoker_enter(self):
|
def on_invoker_enter(self):
|
||||||
PaletteWindow.on_invoker_enter(self)
|
PaletteWindow.on_invoker_enter(self)
|
||||||
self._handle_focus(+1)
|
self._set_focus(True)
|
||||||
|
|
||||||
def on_invoker_leave(self):
|
def on_invoker_leave(self):
|
||||||
PaletteWindow.on_invoker_leave(self)
|
PaletteWindow.on_invoker_leave(self)
|
||||||
self._handle_focus(-1)
|
self._set_focus(False)
|
||||||
|
|
||||||
def on_enter(self, event):
|
def on_enter(self, event):
|
||||||
PaletteWindow.on_enter(self, event)
|
PaletteWindow.on_enter(self, event)
|
||||||
self._handle_focus(+1)
|
self._set_focus(True)
|
||||||
|
|
||||||
def on_leave(self, event):
|
def on_leave(self, event):
|
||||||
PaletteWindow.on_enter(self, event)
|
PaletteWindow.on_enter(self, event)
|
||||||
self._handle_focus(-1)
|
self._set_focus(False)
|
||||||
|
|
||||||
def _handle_focus(self, delta):
|
def _set_focus(self, new_focus):
|
||||||
self._focus += delta
|
self._has_focus = new_focus
|
||||||
if self._focus not in (0, 1):
|
if not self._has_focus:
|
||||||
logging.error('_Palette._focus=%s not in (0, 1)', self._focus)
|
|
||||||
|
|
||||||
if self._focus == 0:
|
|
||||||
group = palettegroup.get_group('default')
|
group = palettegroup.get_group('default')
|
||||||
if not group.is_up():
|
if not group.is_up():
|
||||||
self.popdown()
|
self.popdown()
|
||||||
@ -235,7 +232,7 @@ class _ToolbarPalette(PaletteWindow):
|
|||||||
PaletteWindow.popup(self, immediate)
|
PaletteWindow.popup(self, immediate)
|
||||||
|
|
||||||
def __group_popdown_cb(self, group):
|
def __group_popdown_cb(self, group):
|
||||||
if self._focus == 0:
|
if not self._has_focus:
|
||||||
self.popdown(immediate=True)
|
self.popdown(immediate=True)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user