a11y: Fix crash in notebook

When the accessible was disposed before the notebook it referenced, the
weak ref could still trigger. This works around it.
This commit is contained in:
Benjamin Otte 2011-12-18 17:14:47 +01:00
parent e042462674
commit 7b5b678e2e

View File

@ -42,6 +42,8 @@ check_focus_tab (gpointer data)
atk_obj = ATK_OBJECT (data);
accessible = GTK_NOTEBOOK_ACCESSIBLE (atk_obj);
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_obj));
if (widget == NULL)
return FALSE;
notebook = GTK_NOTEBOOK (widget);
accessible->idle_focus_id = 0;
@ -132,17 +134,6 @@ page_removed_cb (GtkNotebook *notebook,
}
static void
accessible_destroyed (gpointer data)
{
GtkNotebookAccessible *accessible = GTK_NOTEBOOK_ACCESSIBLE (data);
if (accessible->idle_focus_id)
{
g_source_remove (accessible->idle_focus_id);
accessible->idle_focus_id = 0;
}
}
static void
gtk_notebook_accessible_initialize (AtkObject *obj,
gpointer data)
@ -171,8 +162,6 @@ gtk_notebook_accessible_initialize (AtkObject *obj,
g_signal_connect (notebook, "page-removed",
G_CALLBACK (page_removed_cb), NULL);
g_object_weak_ref (G_OBJECT (notebook), (GWeakNotify)accessible_destroyed, obj);
obj->role = ATK_ROLE_PAGE_TAB_LIST;
}