[gtk/abolish-destroy: 18/23] window: Use dispose instead of destroy



commit b6a61489f41ba51a241f890e7020795a8e97b37c
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue May 5 16:51:24 2020 -0400

    window: Use dispose instead of destroy
    
    The destroy vfunc is going away.

 gtk/gtkwindow.c | 71 +++++++++++++++++++++++++--------------------------------
 1 file changed, 31 insertions(+), 40 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index fbf0a065b7..3506e56876 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -363,7 +363,6 @@ struct _GtkWindowGeometryInfo
 static void gtk_window_constructed        (GObject           *object);
 static void gtk_window_dispose            (GObject           *object);
 static void gtk_window_finalize           (GObject           *object);
-static void gtk_window_destroy            (GtkWidget         *widget);
 static void gtk_window_show               (GtkWidget         *widget);
 static void gtk_window_hide               (GtkWidget         *widget);
 static void gtk_window_map                (GtkWidget         *widget);
@@ -498,6 +497,8 @@ static GdkToplevelLayout * gtk_window_compute_layout (GtkWindow *window,
                                                       int        min_width,
                                                       int        min_height);
 
+static void gtk_window_release_application (GtkWindow *window);
+
 static GListStore  *toplevel_list = NULL;
 static guint        window_signals[LAST_SIGNAL] = { 0 };
 static gchar       *default_icon_name = NULL;
@@ -754,7 +755,6 @@ gtk_window_class_init (GtkWindowClass *klass)
   gobject_class->set_property = gtk_window_set_property;
   gobject_class->get_property = gtk_window_get_property;
 
-  widget_class->destroy = gtk_window_destroy;
   widget_class->show = gtk_window_show;
   widget_class->hide = gtk_window_hide;
   widget_class->map = gtk_window_map;
@@ -2632,6 +2632,35 @@ gtk_window_dispose (GObject *object)
 {
   GtkWindow *window = GTK_WINDOW (object);
   GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
+  guint i;
+
+  gtk_window_release_application (window);
+
+  for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (toplevel_list)); i++)
+    {
+      gpointer item = g_list_model_get_item (G_LIST_MODEL (toplevel_list), i);
+      if (item == window)
+        {
+          g_list_store_remove (toplevel_list, i);
+          break;
+        }
+      else
+        g_object_unref (item);
+    }
+
+  if (priv->transient_parent)
+    gtk_window_set_transient_for (window, NULL);
+
+  remove_attach_widget (window);
+
+  if (priv->has_user_ref_count)
+    {
+      priv->has_user_ref_count = FALSE;
+      g_object_unref (window);
+    }
+
+  if (priv->group)
+    gtk_window_group_remove_window (priv->group, window);
 
   g_list_free_full (priv->foci, (GDestroyNotify) gtk_pointer_focus_unref);
   priv->foci = NULL;
@@ -3999,44 +4028,6 @@ gtk_window_get_size (GtkWindow *window,
     *height = h;
 }
 
-static void
-gtk_window_destroy (GtkWidget *widget)
-{
-  GtkWindow *window = GTK_WINDOW (widget);
-  GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
-  guint i;
-
-  gtk_window_release_application (window);
-
-  for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (toplevel_list)); i++)
-    {
-      gpointer item = g_list_model_get_item (G_LIST_MODEL (toplevel_list), i);
-      if (item == window)
-        {
-          g_list_store_remove (toplevel_list, i);
-          break;
-        }
-      else
-        g_object_unref (item);
-    }
-
-  if (priv->transient_parent)
-    gtk_window_set_transient_for (window, NULL);
-
-  remove_attach_widget (window);
-
-  if (priv->has_user_ref_count)
-    {
-      priv->has_user_ref_count = FALSE;
-      g_object_unref (window);
-    }
-
-  if (priv->group)
-    gtk_window_group_remove_window (priv->group, window);
-
-  GTK_WIDGET_CLASS (gtk_window_parent_class)->destroy (widget);
-}
-
 static gboolean
 gtk_window_close_request (GtkWindow *window)
 {


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