[gtk/wip/otte/reftests: 4/7] widgetpaintable: Don't emit signals on dispose



commit 907f51e331cd89b0664533cf8cb9b0a9c2d6fc21
Author: Benjamin Otte <otte redhat com>
Date:   Wed Mar 27 03:41:03 2019 +0100

    widgetpaintable: Don't emit signals on dispose

 gtk/gtkwidgetpaintable.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkwidgetpaintable.c b/gtk/gtkwidgetpaintable.c
index f1da13fed2..6b60c7ad28 100644
--- a/gtk/gtkwidgetpaintable.c
+++ b/gtk/gtkwidgetpaintable.c
@@ -190,12 +190,24 @@ gtk_widget_paintable_get_property (GObject    *object,
     }
 }
 
+static void
+gtk_widget_paintable_unset_widget (GtkWidgetPaintable *self)
+{
+  if (self->widget == NULL)
+    return;
+
+  self->widget->priv->paintables = g_slist_remove (self->widget->priv->paintables,
+                                                   self);
+
+  self->widget = NULL;
+}
+
 static void
 gtk_widget_paintable_dispose (GObject *object)
 {
   GtkWidgetPaintable *self = GTK_WIDGET_PAINTABLE (object);
 
-  gtk_widget_paintable_set_widget (self, NULL);
+  gtk_widget_paintable_unset_widget (self);
 
   G_OBJECT_CLASS (gtk_widget_paintable_parent_class)->dispose (object);
 }
@@ -311,11 +323,7 @@ gtk_widget_paintable_set_widget (GtkWidgetPaintable *self,
   if (self->widget == widget)
     return;
 
-  if (self->widget)
-    {
-      self->widget->priv->paintables = g_slist_remove (self->widget->priv->paintables,
-                                                       self);
-    }
+  gtk_widget_paintable_unset_widget (self);
 
   /* We do not ref the widget to not cause ref cycles when a widget
    * is told to observe itself or one of its parent.


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