Do not hide the frame if menushell is active.
This commit is contained in:
parent
9ff192d0b3
commit
ec0debdb30
@ -75,7 +75,9 @@ class Frame:
|
|||||||
root = model.get_root_item()
|
root = model.get_root_item()
|
||||||
|
|
||||||
grid = shell.get_grid()
|
grid = shell.get_grid()
|
||||||
menu_shell = MenuShell(grid)
|
self._menu_shell = MenuShell(grid)
|
||||||
|
self._menu_shell.connect('activated', self._menu_shell_activated_cb)
|
||||||
|
self._menu_shell.connect('deactivated', self._menu_shell_deactivated_cb)
|
||||||
|
|
||||||
bg = goocanvas.Rect(fill_color="#4f4f4f", line_width=0)
|
bg = goocanvas.Rect(fill_color="#4f4f4f", line_width=0)
|
||||||
grid.set_constraints(bg, 0, 0, 80, 60)
|
grid.set_constraints(bg, 0, 0, 80, 60)
|
||||||
@ -87,12 +89,12 @@ class Frame:
|
|||||||
|
|
||||||
self._add_panel(model, 0, 55, 80, 5)
|
self._add_panel(model, 0, 55, 80, 5)
|
||||||
|
|
||||||
panel = TopPanel(shell, menu_shell)
|
panel = TopPanel(shell, self._menu_shell)
|
||||||
root.add_child(panel)
|
root.add_child(panel)
|
||||||
|
|
||||||
self._add_panel(model, 0, 0, 80, 5)
|
self._add_panel(model, 0, 0, 80, 5)
|
||||||
|
|
||||||
panel = RightPanel(shell, menu_shell)
|
panel = RightPanel(shell, self._menu_shell)
|
||||||
grid.set_constraints(panel, 75, 5)
|
grid.set_constraints(panel, 75, 5)
|
||||||
root.add_child(panel)
|
root.add_child(panel)
|
||||||
|
|
||||||
@ -113,6 +115,12 @@ class Frame:
|
|||||||
|
|
||||||
self._windows.append(panel_window)
|
self._windows.append(panel_window)
|
||||||
|
|
||||||
|
def _menu_shell_activated_cb(self, menu_shell):
|
||||||
|
self._cancel_hide()
|
||||||
|
|
||||||
|
def _menu_shell_deactivated_cb(self, menu_shell):
|
||||||
|
self._hide_after(500)
|
||||||
|
|
||||||
def _enter_notify_cb(self, window, event):
|
def _enter_notify_cb(self, window, event):
|
||||||
self._cancel_hide()
|
self._cancel_hide()
|
||||||
|
|
||||||
@ -121,7 +129,8 @@ class Frame:
|
|||||||
if event.state == gtk.gdk.BUTTON1_MASK:
|
if event.state == gtk.gdk.BUTTON1_MASK:
|
||||||
return
|
return
|
||||||
|
|
||||||
self._hide_after(500)
|
if not self._menu_shell.is_active():
|
||||||
|
self._hide_after(500)
|
||||||
|
|
||||||
def _event_frame_hover_cb(self, event_frame):
|
def _event_frame_hover_cb(self, event_frame):
|
||||||
self.show()
|
self.show()
|
||||||
|
@ -1,9 +1,27 @@
|
|||||||
class MenuShell:
|
import gobject
|
||||||
|
|
||||||
|
class MenuShell(gobject.GObject):
|
||||||
|
__gsignals__ = {
|
||||||
|
'activated': (gobject.SIGNAL_RUN_FIRST,
|
||||||
|
gobject.TYPE_NONE, ([])),
|
||||||
|
'deactivated': (gobject.SIGNAL_RUN_FIRST,
|
||||||
|
gobject.TYPE_NONE, ([])),
|
||||||
|
}
|
||||||
|
|
||||||
def __init__(self, grid):
|
def __init__(self, grid):
|
||||||
|
gobject.GObject.__init__(self)
|
||||||
self._menu_controller = None
|
self._menu_controller = None
|
||||||
self._grid = grid
|
self._grid = grid
|
||||||
|
|
||||||
|
def is_active(self):
|
||||||
|
return (self._menu_controller != None)
|
||||||
|
|
||||||
def set_active(self, controller):
|
def set_active(self, controller):
|
||||||
|
if controller == None:
|
||||||
|
self.emit('deactivated')
|
||||||
|
else:
|
||||||
|
self.emit('activated')
|
||||||
|
|
||||||
if self._menu_controller:
|
if self._menu_controller:
|
||||||
self._menu_controller.popdown()
|
self._menu_controller.popdown()
|
||||||
self._menu_controller = controller
|
self._menu_controller = controller
|
||||||
|
Loading…
Reference in New Issue
Block a user