From f229945dabfc6002ce71433485d8db64a2a6e314 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 17 Dec 2012 23:59:23 -0500 Subject: [PATCH] NotebookPageAccessible: Implement selectable/selected states The automatic handling for this was removed from atk, so we need to do it ourselves here. --- gtk/a11y/gtknotebookpageaccessible.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gtk/a11y/gtknotebookpageaccessible.c b/gtk/a11y/gtknotebookpageaccessible.c index 8346c0ee66..49f4797fc8 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) {