GtkStack: Avoid some unnecessary complication
authorMatthias Clasen <mclasen@redhat.com>
Tue, 23 Jun 2015 10:44:31 +0000 (06:44 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 23 Jun 2015 10:45:07 +0000 (06:45 -0400)
We already have an in-destruction flag, so use it.

gtk/gtkstack.c

index e1e4f3b4446ca90456c470ed5a9d295094031f5c..b2f265bcf292e3bde032656d22d75604004480c8 100644 (file)
@@ -142,7 +142,6 @@ typedef struct {
 
   GtkStackTransitionType active_transition_type;
 
-  gboolean destroying;
 } GtkStackPrivate;
 
 static GParamSpec *stack_props[LAST_PROP] = { NULL, };
@@ -176,7 +175,6 @@ static void     gtk_stack_get_preferred_width_for_height (GtkWidget     *widget,
                                                           gint           height,
                                                           gint          *minimum_width,
                                                           gint          *natural_width);
-static void     gtk_stack_destroy                        (GtkWidget     *widget);
 static void     gtk_stack_finalize                       (GObject       *obj);
 static void     gtk_stack_get_property                   (GObject       *object,
                                                           guint          property_id,
@@ -402,7 +400,6 @@ gtk_stack_class_init (GtkStackClass *klass)
   widget_class->get_preferred_width = gtk_stack_get_preferred_width;
   widget_class->get_preferred_width_for_height = gtk_stack_get_preferred_width_for_height;
   widget_class->compute_expand = gtk_stack_compute_expand;
-  widget_class->destroy = gtk_stack_destroy;
 
   container_class->add = gtk_stack_add;
   container_class->remove = gtk_stack_remove;
@@ -1017,8 +1014,9 @@ set_visible_child (GtkStack               *stack,
   gboolean contains_focus = FALSE;
 
   /* if we are being destroyed, do not bother with transitions
-   * and notifications */
-  if (priv->destroying)
+   * and notifications
+   */
+  if (gtk_widget_in_destruction (widget))
     return;
 
   /* If none, pick first visible */
@@ -1851,17 +1849,6 @@ gtk_stack_compute_expand (GtkWidget *widget,
   *vexpand_p = vexpand;
 }
 
-static void
-gtk_stack_destroy (GtkWidget *widget)
-{
-  GtkStack *stack = GTK_STACK (widget);
-  GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
-
-  priv->destroying = TRUE;
-
-  GTK_WIDGET_CLASS (gtk_stack_parent_class)->destroy (widget);
-}
-
 static void
 gtk_stack_draw_crossfade (GtkWidget *widget,
                           cairo_t   *cr)