From c6bbfc8e3d4eab0bb1c3cb2a5d5bd2eef234c3bd Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Mon, 18 Feb 2013 09:35:58 +0100 Subject: [PATCH] Add a few missing gtk_widget_unregister_window calls This was causing warnings on widget unparent like: Gdk-CRITICAL **: gdk_window_has_native: assertion `GDK_IS_WINDOW (window)' failed Becasue the window was not properly removed from the lists on unrealize. --- gtk/gtktexthandle.c | 16 ++++++++++++++-- gtk/gtktreeview.c | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gtk/gtktexthandle.c b/gtk/gtktexthandle.c index 97449b485b..8298cdf941 100644 --- a/gtk/gtktexthandle.c +++ b/gtk/gtktexthandle.c @@ -369,10 +369,18 @@ gtk_text_handle_finalize (GObject *object) g_object_unref (priv->relative_to); if (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window) - gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window); + { + gtk_widget_unregister_window (priv->parent, + priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window); + gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window); + } if (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window) - gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window); + { + gtk_widget_unregister_window (priv->parent, + priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window); + gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window); + } if (g_signal_handler_is_connected (priv->parent, priv->draw_signal_id)) g_signal_handler_disconnect (priv->parent, priv->draw_signal_id); @@ -527,7 +535,11 @@ _gtk_text_handle_set_relative_to (GtkTextHandle *handle, if (priv->relative_to) { + gtk_widget_unregister_window (priv->parent, + priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window); gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window); + gtk_widget_unregister_window (priv->parent, + priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window); gdk_window_destroy (priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window); g_object_unref (priv->relative_to); } diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 34898aba62..af7b8a0888 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -3347,6 +3347,7 @@ gtk_tree_view_button_release_drag_column (GtkWidget *widget, tree_view->priv->cur_reorder->left_column); } tree_view->priv->drag_column = NULL; + gtk_widget_unregister_window (widget, tree_view->priv->drag_window); gdk_window_destroy (tree_view->priv->drag_window); tree_view->priv->drag_window = NULL;