From e042462674156ae09e07bfd1afcaef54a75f6340 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 18 Dec 2011 17:05:20 +0100 Subject: [PATCH] widget: Unset self from accessible --- gtk/gtkwidget.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index a89275f082..909b32a71e 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -10101,11 +10101,14 @@ gtk_widget_real_destroy (GtkWidget *object) /* gtk_object_destroy() will already hold a refcount on object */ GtkWidget *widget = GTK_WIDGET (object); GtkWidgetPrivate *priv = widget->priv; - GtkAccessible *accessible; - accessible = g_object_steal_qdata (G_OBJECT (widget), quark_accessible_object); - if (GTK_IS_ACCESSIBLE (accessible)) - gtk_accessible_set_widget (accessible, NULL); + if (GTK_WIDGET_GET_CLASS (widget)->priv->accessible_type != GTK_TYPE_ACCESSIBLE) + { + GtkAccessible *accessible = g_object_steal_qdata (G_OBJECT (widget), quark_accessible_object); + + if (accessible) + gtk_accessible_set_widget (accessible, NULL); + } /* wipe accelerator closures (keep order) */ g_object_set_qdata (G_OBJECT (widget), quark_accel_path, NULL);