]> Pileus Git - ~andy/gtk/commitdiff
Properly ref/unref windows and parents. (#506769)
authorCody Russell <bratsche@gnome.org>
Thu, 10 Jan 2008 20:58:40 +0000 (20:58 +0000)
committerCody Russell <bratsche@src.gnome.org>
Thu, 10 Jan 2008 20:58:40 +0000 (20:58 +0000)
2008-01-10  Cody Russell  <bratsche@gnome.org>

        * gdk/win32/gdkwindow-win32.c: (gdk_window_set_transient_for),
        Properly ref/unref windows and parents.  (#506769)

svn path=/trunk/; revision=19344

ChangeLog
gdk/win32/gdkwindow-win32.c

index 65ab438e91bd48087702d7d7523b2b11ace742b4..d65d6d748fd51990b4e15e9013369cd48d0ea179 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-10  Cody Russell  <bratsche@gnome.org>
+
+       * gdk/win32/gdkwindow-win32.c: (gdk_window_set_transient_for),
+       Properly ref/unref windows and parents.  (#506769)
+
 2008-01-10  Richard Hult  <richard@imendio.com>
 
        * gdk/quartz/gdkwindow-quartz.c: (show_window_internal),
index 4fd8ce7a86f17a0882af5c89e9af6eb519f8396e..8f72780b56cbbfa0261c77f2079490324a243dcc 100644 (file)
@@ -1985,6 +1985,8 @@ gdk_window_set_transient_for (GdkWindow *window,
               trans_impl->transient_children = NULL;
             }
         }
+      g_object_unref (G_OBJECT (window_impl->transient_owner));
+      g_object_unref (G_OBJECT (window));
 
       window_impl->transient_owner = NULL;
     }
@@ -1993,8 +1995,10 @@ gdk_window_set_transient_for (GdkWindow *window,
       parent_impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (parent)->impl);
 
       parent_impl->transient_children = g_slist_append (parent_impl->transient_children, window);
+      g_object_ref (G_OBJECT (window));
       parent_impl->num_transients++;
       window_impl->transient_owner = parent;
+      g_object_ref (G_OBJECT (parent));
     }
 
   /* This changes the *owner* of the window, despite the misleading