diff options
author | Ted Gould <ted@gould.cx> | 2012-03-01 12:31:49 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2012-03-01 12:31:49 -0600 |
commit | cbd4cda4b581a98fbe305fd82018ee78d643edc8 (patch) | |
tree | c0d6f7edbcf050ebb6c8cb0b10d699a20073bb76 /libdbusmenu-gtk | |
parent | 17fe62d6ba9a44a86a250695e6e60380e2bab9c1 (diff) | |
download | libdbusmenu-cbd4cda4b581a98fbe305fd82018ee78d643edc8.tar.gz libdbusmenu-cbd4cda4b581a98fbe305fd82018ee78d643edc8.tar.bz2 libdbusmenu-cbd4cda4b581a98fbe305fd82018ee78d643edc8.zip |
Set the role of the menu item based on how it's being displayed
Diffstat (limited to 'libdbusmenu-gtk')
-rw-r--r-- | libdbusmenu-gtk/genericmenuitem.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libdbusmenu-gtk/genericmenuitem.c b/libdbusmenu-gtk/genericmenuitem.c index 5d13081..4c57319 100644 --- a/libdbusmenu-gtk/genericmenuitem.c +++ b/libdbusmenu-gtk/genericmenuitem.c @@ -351,18 +351,29 @@ genericmenuitem_set_check_type (Genericmenuitem * item, GenericmenuitemCheckType } item->priv->check_type = check_type; + AtkObject * aobj = gtk_widget_get_accessible(GTK_WIDGET(item)); switch (item->priv->check_type) { case GENERICMENUITEM_CHECK_TYPE_NONE: /* We don't need to do anything here as we're queuing the draw and then when it draws it'll avoid drawing the check on the item. */ + + if (aobj != NULL) { + atk_object_set_role(aobj, ATK_ROLE_MENU_ITEM); + } break; case GENERICMENUITEM_CHECK_TYPE_CHECKBOX: gtk_check_menu_item_set_draw_as_radio(GTK_CHECK_MENU_ITEM(item), FALSE); + if (aobj != NULL) { + atk_object_set_role(aobj, ATK_ROLE_CHECK_MENU_ITEM); + } break; case GENERICMENUITEM_CHECK_TYPE_RADIO: gtk_check_menu_item_set_draw_as_radio(GTK_CHECK_MENU_ITEM(item), TRUE); + if (aobj != NULL) { + atk_object_set_role(aobj, ATK_ROLE_RADIO_MENU_ITEM); + } break; default: g_warning("Generic Menuitem invalid check type: %d", check_type); |