From 4f72fd1c274b8d493defc6707aa3c40cec411495 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Mon, 24 Sep 2007 23:37:26 +0200 Subject: [PATCH] Cleanups of the frame activation code. Do not hide the frame on clicks. --- shell/view/frame/frame.py | 17 +++-------------- shell/view/frame/framewindow.py | 6 ++++-- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/shell/view/frame/frame.py b/shell/view/frame/frame.py index 62047ade..3fe2ef6f 100644 --- a/shell/view/frame/frame.py +++ b/shell/view/frame/frame.py @@ -138,7 +138,6 @@ class Frame(object): self._shell = shell self._current_position = 0.0 self._animator = None - self._hover = False self._event_area = EventArea() self._event_area.connect('enter', self._enter_corner_cb) @@ -289,24 +288,14 @@ class Frame(object): gobject.timeout_add(2000, lambda: self.hide()) def _enter_notify_cb(self, window, event): - # FIXME clicks cause leave/notify, ignore - if event.state == gtk.gdk.BUTTON1_MASK: - return - if self._hover: - return - - self._hover = True - self._mouse_listener.mouse_enter() + if event.detail != gtk.gdk.NOTIFY_INFERIOR: + self._mouse_listener.mouse_enter() def _leave_notify_cb(self, window, event): - # FIXME clicks cause leave/notify, ignore - if event.state == gtk.gdk.BUTTON1_MASK: - return - if not self._hover: + if event.detail == gtk.gdk.NOTIFY_INFERIOR: return if not self._is_hover() and not self._palette_group.is_up(): - self._hover = False self._mouse_listener.mouse_leave() def _palette_group_popdown_cb(self, group): diff --git a/shell/view/frame/framewindow.py b/shell/view/frame/framewindow.py index 6738bf2b..623d1622 100644 --- a/shell/view/frame/framewindow.py +++ b/shell/view/frame/framewindow.py @@ -93,10 +93,12 @@ class FrameWindow(gtk.Window): self.window.set_accept_focus(False) def _enter_notify_cb(self, window, event): - self.hover = True + if event.detail != gtk.gdk.NOTIFY_INFERIOR: + self.hover = True def _leave_notify_cb(self, window, event): - self.hover = False + if event.detail != gtk.gdk.NOTIFY_INFERIOR: + self.hover = False def _size_changed_cb(self, screen): self._update_size()