[gtk+] NotebookPageAccessible: Implement selectable/selected states



commit f229945dabfc6002ce71433485d8db64a2a6e314
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Dec 17 23:59:23 2012 -0500

    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 files changed, 9 insertions(+), 0 deletions(-)
---
diff --git a/gtk/a11y/gtknotebookpageaccessible.c b/gtk/a11y/gtknotebookpageaccessible.c
index 8346c0e..49f4797 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)
     {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]