[Goodies-commits] r4640 - xfmpc/trunk/src

Mike Massonnet mmassonnet at xfce.org
Sun Apr 20 21:40:08 CEST 2008


Author: mmassonnet
Date: 2008-04-20 19:40:08 +0000 (Sun, 20 Apr 2008)
New Revision: 4640

Modified:
   xfmpc/trunk/src/extended-interface.c
Log:
Detach the context menu in a cleaner way
* src/extended-interface.c(xfmpc_extended_interface_dispose),
  src/extended-interface.c(xfmpc_extended_interface_finalize):
  - Detach the menu (destroys also its childrens)
  - Don't destroy the menu on finalize (it prints bad stuff on stderr)


Modified: xfmpc/trunk/src/extended-interface.c
===================================================================
--- xfmpc/trunk/src/extended-interface.c	2008-04-20 19:40:03 UTC (rev 4639)
+++ xfmpc/trunk/src/extended-interface.c	2008-04-20 19:40:08 UTC (rev 4640)
@@ -56,8 +56,6 @@
 static void             cb_random_switch                    (XfmpcExtendedInterface *extended_interface);
 static void             cb_context_menu                     (GtkToggleButton *button,
                                                              XfmpcExtendedInterface *extended_interface);
-static void             cb_context_menu_detach              (GtkWidget *button,
-                                                             GtkMenu *menu);
 static void             cb_context_menu_deactivate          (GtkMenuShell *menu,
                                                              GtkWidget *attach_widget);
 static void             position_context_menu               (GtkMenu *menu,
@@ -215,16 +213,18 @@
 {
   XfmpcExtendedInterfacePrivate *priv = XFMPC_EXTENDED_INTERFACE_GET_PRIVATE (object);
 
-  if (GTK_IS_WIDGET (priv->repeat))
+  if (GTK_IS_MENU (priv->context_menu))
     {
-      gtk_widget_destroy (priv->repeat);
+      gtk_menu_detach (GTK_MENU (priv->context_menu));
+      priv->context_menu = NULL;
       priv->repeat = NULL;
+      priv->random = NULL;
     }
 
-  if (GTK_IS_WIDGET (priv->random))
+  if (GTK_IS_WIDGET (priv->context_button))
     {
-      gtk_widget_destroy (priv->random);
-      priv->random = NULL;
+      gtk_widget_destroy (priv->context_button);
+      priv->context_button = NULL;
     }
 
   (*G_OBJECT_CLASS (parent_class)->dispose) (object);
@@ -236,7 +236,6 @@
   XfmpcExtendedInterface *extended_interface = XFMPC_EXTENDED_INTERFACE (object);
   XfmpcExtendedInterfacePrivate *priv = XFMPC_EXTENDED_INTERFACE_GET_PRIVATE (extended_interface);
   g_object_unref (G_OBJECT (extended_interface->mpdclient));
-  gtk_widget_destroy (priv->context_menu);
   (*G_OBJECT_CLASS (parent_class)->finalize) (object);
 }
 
@@ -347,7 +346,7 @@
     return;
 
   if (GTK_IS_MENU (priv->context_menu))
-    gtk_widget_destroy (priv->context_menu);
+    gtk_menu_detach (GTK_MENU (priv->context_menu));
   xfmpc_extended_interface_context_menu_new (extended_interface, priv->context_button);
 
   gtk_menu_popup (GTK_MENU (priv->context_menu),




More information about the Goodies-commits mailing list