From: Matthias Clasen Date: Tue, 18 Dec 2012 04:59:23 +0000 (-0500) Subject: NotebookPageAccessible: Implement selectable/selected states X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=f229945dabfc6002ce71433485d8db64a2a6e314;p=~andy%2Fgtk NotebookPageAccessible: Implement selectable/selected states The automatic handling for this was removed from atk, so we need to do it ourselves here. --- diff --git a/gtk/a11y/gtknotebookpageaccessible.c b/gtk/a11y/gtknotebookpageaccessible.c index 8346c0ee6..49f4797fc 100644 --- a/gtk/a11y/gtknotebookpageaccessible.c +++ b/gtk/a11y/gtknotebookpageaccessible.c @@ -140,12 +140,21 @@ gtk_notebook_page_accessible_ref_child (AtkObject *accessible, static AtkStateSet * gtk_notebook_page_accessible_ref_state_set (AtkObject *accessible) { + GtkNotebookPageAccessible *page = GTK_NOTEBOOK_PAGE_ACCESSIBLE (accessible); AtkStateSet *state_set, *label_state_set, *merged_state_set; AtkObject *atk_label; GtkWidget *label; + AtkObject *selected; state_set = ATK_OBJECT_CLASS (_gtk_notebook_page_accessible_parent_class)->ref_state_set (accessible); + atk_state_set_add_state (state_set, ATK_STATE_SELECTABLE); + + selected = atk_selection_ref_selection (ATK_SELECTION (page->priv->notebook), 0); + if (selected == accessible) + atk_state_set_add_state (state_set, ATK_STATE_SELECTED); + g_object_unref (selected); + label = get_label_from_notebook_page (GTK_NOTEBOOK_PAGE_ACCESSIBLE (accessible)); if (label) {