diff --git a/gtk/gtkaccessible.c b/gtk/gtkaccessible.c index e999b092d7..a84eddf033 100644 --- a/gtk/gtkaccessible.c +++ b/gtk/gtkaccessible.c @@ -216,6 +216,13 @@ gtk_accessible_connect_widget_destroyed (GtkAccessible *accessible) class->connect_widget_destroyed (accessible); } +static void +gtk_accessible_widget_destroyed (GtkWidget *widget, + GtkAccessible *accessible) +{ + gtk_accessible_set_widget (accessible, NULL); +} + static void gtk_accessible_real_connect_widget_destroyed (GtkAccessible *accessible) { @@ -223,5 +230,5 @@ gtk_accessible_real_connect_widget_destroyed (GtkAccessible *accessible) if (priv->widget) g_signal_connect (priv->widget, "destroy", - G_CALLBACK (gtk_widget_destroyed), &priv->widget); + G_CALLBACK (gtk_accessible_widget_destroyed), accessible); }