network-manager-applet r627 - in trunk: . src
- From: dcbw svn gnome org
- To: svn-commits-list gnome org
- Subject: network-manager-applet r627 - in trunk: . src
- Date: Mon, 31 Mar 2008 00:26:06 +0100 (BST)
Author: dcbw
Date: Mon Mar 31 00:26:06 2008
New Revision: 627
URL: http://svn.gnome.org/viewvc/network-manager-applet?rev=627&view=rev
Log:
2008-03-30 Dan Williams <dcbw redhat com>
* src/applet.c
- (nma_menu_deactivate_cb, nma_menu_clear): punt the menu destruction
to a low-priority idle handler so that any menu item 'activate'
signals fire before the menu is destroyed
Modified:
trunk/ChangeLog
trunk/src/applet.c
Modified: trunk/src/applet.c
==============================================================================
--- trunk/src/applet.c (original)
+++ trunk/src/applet.c Mon Mar 31 00:26:06 2008
@@ -910,13 +910,16 @@
// nmi_dbus_signal_user_interface_activated (applet->connection);
}
+static gboolean nma_menu_clear (NMApplet *applet);
+
static void
nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet)
{
- if (applet->menu) {
- gtk_widget_destroy (applet->menu);
- applet->menu = NULL;
- }
+ /* Must punt the destroy to a low-priority idle to ensure that
+ * the menu items don't get destroyed before any 'activate' signal
+ * fires for an item.
+ */
+ g_idle_add_full (G_PRIORITY_LOW, (GSourceFunc) nma_menu_clear, applet, NULL);
}
/*
@@ -945,13 +948,14 @@
* Destroy the menu and each of its items data tags
*
*/
-static void nma_menu_clear (NMApplet *applet)
+static gboolean nma_menu_clear (NMApplet *applet)
{
- g_return_if_fail (applet != NULL);
+ g_return_val_if_fail (applet != NULL, FALSE);
if (applet->menu)
gtk_widget_destroy (applet->menu);
applet->menu = nma_menu_create (applet);
+ return FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]