From 0780a4975b71f563f6846f29c763d1d5c93f3a91 Mon Sep 17 00:00:00 2001 From: Li Yuan Date: Fri, 21 Aug 2009 15:29:51 +0800 Subject: [PATCH] Return state_set directly if there is no parent. Bug #592403. Return state_set directly if there is no parent. Fix crash. --- modules/other/gail/gailmenuitem.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/modules/other/gail/gailmenuitem.c b/modules/other/gail/gailmenuitem.c index 3c238e729a..24b1a853d5 100644 --- a/modules/other/gail/gailmenuitem.c +++ b/modules/other/gail/gailmenuitem.c @@ -251,16 +251,18 @@ gail_menu_item_ref_state_set (AtkObject *obj) menu_item = atk_object_get_parent (obj); - if (!GTK_IS_MENU_ITEM (GTK_ACCESSIBLE (menu_item)->widget)) - return state_set; - - parent_state_set = atk_object_ref_state_set (menu_item); - if (!atk_state_set_contains_state (parent_state_set, ATK_STATE_SELECTED)) + if (menu_item) { - atk_state_set_remove_state (state_set, ATK_STATE_FOCUSED); - atk_state_set_remove_state (state_set, ATK_STATE_SHOWING); - } + if (!GTK_IS_MENU_ITEM (GTK_ACCESSIBLE (menu_item)->widget)) + return state_set; + parent_state_set = atk_object_ref_state_set (menu_item); + if (!atk_state_set_contains_state (parent_state_set, ATK_STATE_SELECTED)) + { + atk_state_set_remove_state (state_set, ATK_STATE_FOCUSED); + atk_state_set_remove_state (state_set, ATK_STATE_SHOWING); + } + } return state_set; }