GtkMenuItemAccessible: implement selectable/selected states

The automatic handling for this was removed in atk, so
we need to do it ourselves now.
This commit is contained in:
Matthias Clasen 2012-12-17 23:58:24 -05:00
parent df1d331713
commit 5bee1a994f

View File

@ -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++)