From: JunsuChoi Date: Mon, 6 Nov 2017 07:09:35 +0000 (+0900) Subject: atspi : Fix abnormal behavior and relationship for rotary selector item X-Git-Tag: submit/tizen/20171107.093719^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=602dc195930bf298a8eaba738b51bc39054012f5;p=platform%2Fcore%2Fuifw%2Fefl-ext.git atspi : Fix abnormal behavior and relationship for rotary selector item Resets rotary selector item's relationship when screen_reader_changed callback is called. and If the rotary_event is COUNTER_CLOCKWISE, rotary_event should ignore action once. Change-Id: Ib599602ac45d04d80ba3f9fa6abf90f31c75b47a --- diff --git a/src/wearable/efl_extension_rotary_selector.c b/src/wearable/efl_extension_rotary_selector.c index 7dd4cf5..32441d5 100644 --- a/src/wearable/efl_extension_rotary_selector.c +++ b/src/wearable/efl_extension_rotary_selector.c @@ -1484,7 +1484,14 @@ _rotary_selector_rotary_cb(void *data, Evas_Object *obj, Eext_Rotary_Event_Info { if (!rsd->acceleration) { - rsd->selected_index -= 1; + if (elm_atspi_bridge_utils_is_screen_reader_enabled() && rsd->is_first_rotary_control) + { + rsd->is_first_rotary_control = EINA_FALSE; + } + else + { + rsd->selected_index -= 1; + } } else { @@ -4104,6 +4111,7 @@ _rotary_selector_screen_reader_changed(void *data, Evas_Object *obj, void *event { Eina_List *l = NULL; Eext_Rotary_Selector_Item *item = NULL; + Eext_Rotary_Selector_Item *prev_item = NULL; Eext_Rotary_Selector_Data *rsd = (Eext_Rotary_Selector_Data *)data; if (!rsd) return ; @@ -4111,15 +4119,24 @@ _rotary_selector_screen_reader_changed(void *data, Evas_Object *obj, void *event if (elm_atspi_bridge_utils_is_screen_reader_enabled()) { evas_object_smart_callback_add(rsd->rotary_selector, "more,option,opened", _rotary_selector_moreoption_opened_cb, rsd); - + item = eina_list_nth(rsd->item_list, 0); + if (item) + { + _accessibility_rotary_selector_item_relationship_set(obj, item->base.obj); + } EINA_LIST_FOREACH(rsd->item_list, l, item) { evas_object_freeze_events_set(item->base.obj, EINA_FALSE); evas_object_smart_callback_add(item->base.obj, "clicked",_accessibility_item_btn_clicked_cb, (Eext_Rotary_Selector_Data*)rsd); evas_object_smart_callback_add(item->base.obj, "atspi,highlighted", _accessibility_item_btn_highlighted_cb, (Eext_Rotary_Selector_Data*)rsd); elm_atspi_accessible_gesture_cb_set(item->base.obj, _accessibility_item_gesutre_cb, (Eext_Rotary_Selector_Data*)rsd); + if (prev_item) + { + _accessibility_rotary_selector_item_relationship_set(prev_item->base.obj, item->base.obj); + } + prev_item = item; } - + _accessibility_item_chain_end_set(rsd); rsd->is_first_rotary_control = EINA_TRUE; } else