[gedit] Do not leak the GeditNotebookPopupMenu's



commit 9e10935ddf4f80077fc1f9817cc0cfdcaf6d7452
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Wed Jan 13 16:19:14 2016 +0100

    Do not leak the GeditNotebookPopupMenu's

 gedit/gedit-documents-panel.c |    4 ++++
 gedit/gedit-window.c          |    8 +++++++-
 2 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/gedit/gedit-documents-panel.c b/gedit/gedit-documents-panel.c
index 472a28c..4f15d4f 100644
--- a/gedit/gedit-documents-panel.c
+++ b/gedit/gedit-documents-panel.c
@@ -1536,6 +1536,8 @@ row_on_button_pressed (GtkWidget      *row_event_box,
                        GeditTab *tab = GEDIT_TAB (document_row->ref);
                        GtkWidget *menu = gedit_notebook_popup_menu_new (window, tab);
 
+                       g_object_ref_sink (menu);
+
                        gtk_menu_popup_for_device (GTK_MENU (menu),
                                                   gdk_event_get_device ((GdkEvent *)event),
                                                   NULL, NULL,
@@ -1543,6 +1545,8 @@ row_on_button_pressed (GtkWidget      *row_event_box,
                                                   event->button,
                                                   event->time);
 
+                       g_object_unref (menu);
+
                        return TRUE;
                }
        }
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index a2b4889..7ef541e 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -2213,14 +2213,20 @@ on_show_popup_menu (GeditMultiNotebook *multi,
        GtkWidget *menu;
 
        if (event == NULL)
+       {
                return;
+       }
 
        menu = gedit_notebook_popup_menu_new (window, tab);
-       gtk_widget_show (menu);
 
+       g_object_ref_sink (menu);
+
+       gtk_widget_show (menu);
        gtk_menu_popup (GTK_MENU (menu), NULL, NULL,
                        NULL, NULL,
                        event->button, event->time);
+
+       g_object_unref (menu);
 }
 
 static void


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