[Xfce4-commits] [xfce/xfce4-panel] 09/12: Fixing problems with intelligent panel hiding (Bug #11331)
noreply at xfce.org
noreply at xfce.org
Mon Feb 27 22:51:50 CET 2017
This is an automated email from the git hooks/post-receive script.
ochosi pushed a commit to branch master
in repository xfce/xfce4-panel.
commit 10794543f57fb648ef472add6d4d2d81bf7dae5b
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date: Mon Feb 27 21:09:30 2017 +0100
Fixing problems with intelligent panel hiding (Bug #11331)
ochosi: "Just to document the findings I made during a quick debug session
with the panel from git master (4.11.x). Intelligent hiding
generally works, but the mouse-pointer behavior is buggy.
Steps to reproduce the bug:
1) set panel to intelligent hiding
2) give a window focus that doesn't overlap with the panel
3) hover the panel with the mouse
4) upon leaving the panel hides again, even though there
is no window overlapping
What it should do instead: if intelligent hiding is in use
it should check (possibly in panel_window_leave_notify_event
or _enter_ in panel-window.c) whether there are windows
overlapping with the panel and if not, the panel shouldn't
hide on leave_notify."
Rebased for the Gtk3 port by Simon Steinbeiss <simon at xfce.org>
---
panel/panel-window.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/panel/panel-window.c b/panel/panel-window.c
index cffe337..1e8a024 100644
--- a/panel/panel-window.c
+++ b/panel/panel-window.c
@@ -927,8 +927,14 @@ panel_window_leave_notify_event (GtkWidget *widget,
/* queue an autohide timeout if needed */
if (event->detail != GDK_NOTIFY_INFERIOR
&& window->autohide_state != AUTOHIDE_DISABLED
- && window->autohide_state != AUTOHIDE_BLOCKED)
- panel_window_autohide_queue (window, AUTOHIDE_POPDOWN);
+ && window->autohide_state != AUTOHIDE_BLOCKED) {
+ /* simulate a geometry change to check for overlapping windows with intelligent hiding */
+ if (window->autohide_behavior == AUTOHIDE_BEHAVIOR_INTELLIGENTLY)
+ panel_window_active_window_geometry_changed (window->wnck_active_window, window);
+ /* otherwise just hide the panel */
+ else
+ panel_window_autohide_queue (window, AUTOHIDE_POPDOWN);
+ }
return (*GTK_WIDGET_CLASS (panel_window_parent_class)->leave_notify_event) (widget, event);
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list