Updating branch refs/heads/master
to bc18274854ae80e41615108db31eb58dc6b69c39 (commit)
from e9ed7f813e3b620676b656e617e32a9627ae247b (commit)
commit bc18274854ae80e41615108db31eb58dc6b69c39
Author: Nick Schermer <[email protected]>
Date: Fri Nov 26 20:36:44 2010 +0100
Don't destroy the menu under the users' cursor.
Add a signal to destroy the menu when the user closed it
if the menu is popped up.
plugins/applicationsmenu/applicationsmenu.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/plugins/applicationsmenu/applicationsmenu.c
b/plugins/applicationsmenu/applicationsmenu.c
index 3f8827d..79ac910 100644
--- a/plugins/applicationsmenu/applicationsmenu.c
+++ b/plugins/applicationsmenu/applicationsmenu.c
@@ -861,9 +861,14 @@ applications_menu_plugin_menu_reload
(ApplicationsMenuPlugin *plugin)
panel_debug (PANEL_DEBUG_DOMAIN_APPLICATIONMENU,
"destroy menu for reload");
- /* give garcon time to handle all the events */
- exo_gtk_object_destroy_later (GTK_OBJECT (plugin->menu));
- plugin->menu = NULL;
+ /* if the menu is opened, do not destroy it under the users'
+ * cursor, else destroy the menu in an idle, to give garcon
+ * time to finalize the events that triggered the reload */
+ if (GTK_WIDGET_VISIBLE (plugin->menu))
+ g_signal_connect (G_OBJECT (plugin->menu), "selection-done",
+ G_CALLBACK (exo_gtk_object_destroy_later), NULL);
+ else
+ exo_gtk_object_destroy_later (GTK_OBJECT (plugin->menu));
}
}
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits