[ekiga] UI: Fixed context menus not working anymore in the roster.



commit 2dedaa9da42a5e3a01e9172a0b3bf4e29de86ffb
Author: Damien Sandras <dsandras beip be>
Date:   Sun Mar 17 15:53:35 2013 +0100

    UI: Fixed context menus not working anymore in the roster.

 lib/engine/gui/gtk-frontend/roster-view-gtk.cpp |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)
---
diff --git a/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp b/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp
index 63380de..f262561 100644
--- a/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp
+++ b/lib/engine/gui/gtk-frontend/roster-view-gtk.cpp
@@ -501,13 +501,14 @@ on_clicked_show_heap_menu (Ekiga::Heap* heap,
   MenuBuilderGtk builder;
   heap->populate_menu (builder);
   if (!builder.empty ()) {
-
     gtk_widget_show_all (builder.menu);
     gtk_menu_popup (GTK_MENU (builder.menu), NULL, NULL,
-                   NULL, NULL, event->button, event->time);
+                    NULL, NULL, event->button, event->time);
+    g_signal_connect (builder.menu, "hide",
+                      G_CALLBACK (g_object_unref),
+                      (gpointer) builder.menu);
   }
-  g_object_ref_sink (builder.menu);
-  g_object_unref (builder.menu);
+  g_object_ref_sink (G_OBJECT (builder.menu));
 }
 
 static void
@@ -521,10 +522,12 @@ on_clicked_show_heap_group_menu (Ekiga::Heap* heap,
 
     gtk_widget_show_all (builder.menu);
     gtk_menu_popup (GTK_MENU (builder.menu), NULL, NULL,
-                   NULL, NULL, event->button, event->time);
+                    NULL, NULL, event->button, event->time);
+    g_signal_connect (builder.menu, "hide",
+                      G_CALLBACK (g_object_unref),
+                      (gpointer) builder.menu);
   }
-  g_object_ref_sink (builder.menu);
-  g_object_unref (builder.menu);
+  g_object_ref_sink (G_OBJECT (builder.menu));
 }
 
 static void
@@ -548,9 +551,11 @@ on_clicked_show_presentity_menu (Ekiga::Heap* heap,
     gtk_widget_show_all (builder.menu);
     gtk_menu_popup (GTK_MENU (builder.menu), NULL, NULL,
                     NULL, NULL, event->button, event->time);
+    g_signal_connect (builder.menu, "hide",
+                      G_CALLBACK (g_object_unref),
+                      (gpointer) builder.menu);
   }
-  g_object_ref_sink (builder.menu);
-  g_object_unref (builder.menu);
+  g_object_ref_sink (G_OBJECT (builder.menu));
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]