[gtk/abolish-destroy: 18/23] window: Use dispose instead of destroy
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/abolish-destroy: 18/23] window: Use dispose instead of destroy
- Date: Tue, 5 May 2020 21:02:23 +0000 (UTC)
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]