[gtk+] Add a few missing gtk_widget_unregister_window calls



commit c6bbfc8e3d4eab0bb1c3cb2a5d5bd2eef234c3bd
Author: Alexander Larsson <alexl redhat com>
Date:   Mon Feb 18 09:35:58 2013 +0100

    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 97449b4..8298cdf 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 34898ab..af7b8a0 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;
 


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