stanluk pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=e071e2d8f6c7eac412d4d76c0d14de8ebc664f70
commit e071e2d8f6c7eac412d4d76c0d14de8ebc664f70 Author: Lukasz Stanislawski <l.stanisl...@samsung.com> Date: Wed Jul 1 10:42:45 2015 +0200 genlist: broadcast atspi expanded state changes --- src/lib/elm_atspi_bridge.c | 11 ++++++++--- src/lib/elm_genlist.c | 11 +++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c index 289f3af..6070ebf 100644 --- a/src/lib/elm_atspi_bridge.c +++ b/src/lib/elm_atspi_bridge.c @@ -2900,11 +2900,13 @@ _set_broadcast_flag(const char *event, Eo *bridge) if (!tokens[2] || *tokens[2] == '\0') pd->object_state_broadcast_mask = -1; // broadcast all else if (!strcmp(tokens[2], "Focused")) - STATE_TYPE_SET(pd->object_state_broadcast_mask, ATSPI_STATE_FOCUSED); + STATE_TYPE_SET(pd->object_state_broadcast_mask, ELM_ATSPI_STATE_FOCUSED); else if (!strcmp(tokens[2], "Showing")) - STATE_TYPE_SET(pd->object_state_broadcast_mask, ATSPI_STATE_SHOWING); + STATE_TYPE_SET(pd->object_state_broadcast_mask, ELM_ATSPI_STATE_SHOWING); else if (!strcmp(tokens[2], "Checked")) - STATE_TYPE_SET(pd->object_state_broadcast_mask, ATSPI_STATE_CHECKED); + STATE_TYPE_SET(pd->object_state_broadcast_mask, ELM_ATSPI_STATE_CHECKED); + else if (!strcmp(tokens[2], "Expanded")) + STATE_TYPE_SET(pd->object_state_broadcast_mask, ELM_ATSPI_STATE_EXPANDED); } else if (!strcmp(tokens[1], "PropertyChange")) { @@ -3048,6 +3050,9 @@ _state_changed_signal_send(void *data, Eo *obj EINA_UNUSED, const Eo_Event_Descr case ELM_ATSPI_STATE_CHECKED: type_desc = "checked"; break; + case ELM_ATSPI_STATE_EXPANDED: + type_desc = "expanded"; + break; default: return EINA_FALSE; } diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index e612532..e332bce 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -6711,6 +6711,8 @@ _elm_genlist_item_expanded_set(Eo *eo_item EINA_UNUSED, Elm_Gen_Item *it, Eina_B edje_object_signal_emit(VIEW(it), SIGNAL_EXPANDED, "elm"); evas_object_smart_callback_call(WIDGET(it), SIG_EXPANDED, EO_OBJ(it)); sd->auto_scroll_enabled = EINA_TRUE; + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(eo_item, ELM_ATSPI_STATE_EXPANDED, EINA_TRUE); } else { @@ -6719,6 +6721,8 @@ _elm_genlist_item_expanded_set(Eo *eo_item EINA_UNUSED, Elm_Gen_Item *it, Eina_B edje_object_signal_emit(VIEW(it), SIGNAL_CONTRACTED, "elm"); evas_object_smart_callback_call(WIDGET(it), SIG_CONTRACTED, EO_OBJ(it)); sd->auto_scroll_enabled = EINA_FALSE; + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(eo_item, ELM_ATSPI_STATE_EXPANDED, EINA_FALSE); } } @@ -7742,6 +7746,13 @@ _elm_genlist_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_it, Elm_Ge if (sel) STATE_TYPE_SET(ret, ELM_ATSPI_STATE_SELECTED); + if (elm_genlist_item_type_get(eo_it) == ELM_GENLIST_ITEM_TREE) + { + STATE_TYPE_SET(ret, ELM_ATSPI_STATE_EXPANDABLE); + if (elm_genlist_item_expanded_get(eo_it)) + STATE_TYPE_SET(ret, ELM_ATSPI_STATE_EXPANDED); + } + return ret; } --