diff --git a/ChangeLog b/ChangeLog index 174dcf73bb..f37770fc6a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-01-10 Cody Russell + + Merge from trunk: + + * gdk/win32/gdkwindow-win32.c: (gdk_window_set_transient_for), + Properly ref/unref windows and parents. (#506769) + 2008-01-10 Richard Hult Merged from trunk: diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index 4fd8ce7a86..8f72780b56 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -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