[gtk+] GtkMenuItemAccessible: implement selectable/selected states



commit 5bee1a994f9ad8b49c584f117db8281136c0a01b
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Dec 17 23:58:24 2012 -0500

    GtkMenuItemAccessible: implement selectable/selected states
    
    The automatic handling for this was removed in atk, so
    we need to do it ourselves now.

 gtk/a11y/gtkmenuitemaccessible.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/gtk/a11y/gtkmenuitemaccessible.c b/gtk/a11y/gtkmenuitemaccessible.c
index 2e5a436..4389639 100644
--- a/gtk/a11y/gtkmenuitemaccessible.c
+++ b/gtk/a11y/gtkmenuitemaccessible.c
@@ -23,6 +23,7 @@
 struct _GtkMenuItemAccessiblePrivate
 {
   gchar *text;
+  gboolean selected;
 };
 
 #define KEYBINDING_SEPARATOR ";"
@@ -147,6 +148,10 @@ gtk_menu_item_accessible_ref_state_set (AtkObject *obj)
 
   state_set = ATK_OBJECT_CLASS (_gtk_menu_item_accessible_parent_class)->ref_state_set (obj);
 
+  atk_state_set_add_state (state_set, ATK_STATE_SELECTABLE);
+  if (GTK_MENU_ITEM_ACCESSIBLE (obj)->priv->selected)
+    atk_state_set_add_state (state_set, ATK_STATE_SELECTED);
+
   menu_item = atk_object_get_parent (obj);
 
   if (menu_item)
@@ -620,6 +625,7 @@ menu_item_selection (GtkMenuItem  *item,
   gint i;
 
   obj = gtk_widget_get_accessible (GTK_WIDGET (item));
+  GTK_MENU_ITEM_ACCESSIBLE (obj)->priv->selected = selected;
   atk_object_notify_state_change (obj, ATK_STATE_SELECTED, selected);
 
   for (i = 0; i < atk_object_get_n_accessible_children (obj); i++)



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