From 5378324a1869fba390b25eb748b4afa45ae218f6 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 19 Dec 2008 14:44:51 +0100 Subject: [PATCH] Ref imp even in non-native windows and don't NULL out in destroy so that get_screen works after destroy. --- gdk/gdkwindow.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index fe76ec7e32..524b3d71e3 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -871,7 +871,7 @@ gdk_window_new (GdkWindow *parent, } else { - private->impl = private->parent->impl; + private->impl = g_object_ref (private->parent->impl); } recompute_visible_regions (private, TRUE, FALSE); @@ -912,7 +912,8 @@ change_impl (GdkWindowObject *private, GdkDrawable *old_impl; old_impl = private->impl; - private->impl = new; + private->impl = g_object_ref (new); + g_object_unref (old_impl); for (l = private->children; l != NULL; l = l->next) { @@ -1359,8 +1360,6 @@ _gdk_window_destroy_hierarchy (GdkWindow *window, { /* hide to make sure we repaint and break grabs */ gdk_window_hide (window); - /* NULL out impl so we don't double free it on finalize */ - private->impl = NULL; } private->state |= GDK_WINDOW_STATE_WITHDRAWN;