Updating branch refs/heads/master
to 92e1f9b78c3c0a2832b5f2514b154ba2f4e86223 (commit)
from c7178568dc3a4a4c0399b49bf65dcc8ea817e986 (commit)
commit 92e1f9b78c3c0a2832b5f2514b154ba2f4e86223
Author: Gearoid Murphy <[email protected]>
Date: Sat Oct 13 15:48:42 2012 +0100
Made the hover menu wait around a little time when it loses mouse focus,
instead of just exiting immediately.
taskbar-widget.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/taskbar-widget.c b/taskbar-widget.c
index c1a8ce2..61ae585 100644
--- a/taskbar-widget.c
+++ b/taskbar-widget.c
@@ -2387,7 +2387,11 @@ static gboolean hover_menu_enter(GtkWidget *widget,
GdkEvent *event, gpointer m
static gboolean hover_menu_leave(GtkWidget *widget, GdkEvent *event, gpointer
menu_ptr)
{
GtkWidget *menu_widget = (GtkWidget *)menu_ptr;
- gtk_widget_destroy (menu_widget);
+
+ //We don't want to kill the hover menu immediately, so we wait a small time
+ size_t timeout_id = (size_t)g_timeout_add(300,
xfce_taskbar_hover_menu_timeout, menu_widget);
+ g_object_set_data(G_OBJECT(menu_widget), "timeout_id", (void *)timeout_id);
+
return FALSE ;
}
@@ -2453,6 +2457,7 @@ static gboolean
xfce_taskbar_group_button_leave_event(GtkWidget *button_widget,
size_t timeout_id = (size_t)g_timeout_add(300,
xfce_taskbar_hover_menu_timeout, menu_widget);
g_object_set_data(G_OBJECT(menu_widget), "timeout_id", (void
*)timeout_id);
+ //We use the enter event to disable the pending timeout (if the
user mouses over the hover menu)
g_signal_connect (GTK_WINDOW (GTK_MENU(menu_widget)->toplevel),
"enter-notify-event", G_CALLBACK (hover_menu_enter), menu_widget);
g_signal_connect (GTK_WINDOW (GTK_MENU(menu_widget)->toplevel),
"leave-notify-event", G_CALLBACK (hover_menu_leave), menu_widget);
}
_______________________________________________
Xfce4-commits mailing list
[email protected]
https://mail.xfce.org/mailman/listinfo/xfce4-commits