[gtk+] GtkWindow: use a weak ref to keep track of attach_widget



commit fb08a26acdb5aff94e3a33997a030147109b001c
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu May 2 08:01:14 2013 -0400

    GtkWindow: use a weak ref to keep track of attach_widget
    
    Taking a full reference of the attach widget creates a reference
    cycle, and keeps the attach_widget alive longer than it should.

 gtk/gtkwindow.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 16942b8..b6e3e15 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -2510,7 +2510,7 @@ remove_attach_widget (GtkWindow *window)
     {
       _gtk_widget_remove_attached_window (priv->attach_widget, window);
 
-      g_object_unref (priv->attach_widget);
+      g_object_remove_weak_pointer (priv->attach_widget, &priv->attach_widget);
       priv->attach_widget = NULL;
     }
 }
@@ -2760,7 +2760,7 @@ gtk_window_set_attached_to (GtkWindow *window,
     {
       _gtk_widget_add_attached_window (priv->attach_widget, window);
 
-      g_object_ref (priv->attach_widget);
+      g_object_add_weak_pointer (priv->attach_widget, &priv->attach_widget);
     }
 
   /* Update the style, as the widget path might change. */


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