diff --git a/legacy/elementary/src/lib/elm_entry.c b/legacy/elementary/src/lib/elm_entry.c index 9e2e743e51..16b0fbd9ce 100644 --- a/legacy/elementary/src/lib/elm_entry.c +++ b/legacy/elementary/src/lib/elm_entry.c @@ -1099,6 +1099,8 @@ _elm_entry_elm_widget_on_focus(Eo *obj, Elm_Entry_Data *sd) !edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text")) elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_ON); evas_object_smart_callback_call(obj, SIG_FOCUSED, NULL); + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_FOCUSED, EINA_TRUE); _return_key_enabled_check(obj); _validate(obj); } @@ -1110,6 +1112,8 @@ _elm_entry_elm_widget_on_focus(Eo *obj, Elm_Entry_Data *sd) !edje_object_part_text_imf_context_get(sd->entry_edje, "elm.text")) elm_win_keyboard_mode_set(top, ELM_WIN_KEYBOARD_OFF); evas_object_smart_callback_call(obj, SIG_UNFOCUSED, NULL); + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_FOCUSED, EINA_FALSE); if (_elm_config->selection_clear_enable) { diff --git a/legacy/elementary/src/lib/elm_layout.c b/legacy/elementary/src/lib/elm_layout.c index f04b80f03a..06adc9de72 100644 --- a/legacy/elementary/src/lib/elm_layout.c +++ b/legacy/elementary/src/lib/elm_layout.c @@ -406,12 +406,16 @@ _elm_layout_elm_widget_on_focus(Eo *obj, Elm_Layout_Smart_Data *_pd EINA_UNUSED) elm_layout_signal_emit(obj, "elm,action,focus", "elm"); evas_object_focus_set(wd->resize_obj, EINA_TRUE); evas_object_smart_callback_call(obj, SIG_LAYOUT_FOCUSED, NULL); + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_FOCUSED, EINA_TRUE); } else { elm_layout_signal_emit(obj, "elm,action,unfocus", "elm"); evas_object_focus_set(wd->resize_obj, EINA_FALSE); evas_object_smart_callback_call(obj, SIG_LAYOUT_UNFOCUSED, NULL); + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_FOCUSED, EINA_FALSE); } return EINA_TRUE; diff --git a/legacy/elementary/src/lib/elm_widget.c b/legacy/elementary/src/lib/elm_widget.c index 1763bc505b..8f48d6b18e 100644 --- a/legacy/elementary/src/lib/elm_widget.c +++ b/legacy/elementary/src/lib/elm_widget.c @@ -5430,13 +5430,6 @@ elm_widget_tree_dot_dump(const Evas_Object *top, #endif } -static void -_on_focus_change(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Eina_Bool val = data ? EINA_TRUE : EINA_FALSE; - elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_FOCUSED, val); -} - EOLIAN static void _elm_widget_eo_base_constructor(Eo *obj, Elm_Widget_Smart_Data *sd) { @@ -5452,8 +5445,6 @@ _elm_widget_eo_base_constructor(Eo *obj, Elm_Widget_Smart_Data *sd) sd->on_create = EINA_FALSE; sd->role = ELM_ATSPI_ROLE_UNKNOWN; - evas_object_smart_callback_add(obj, "focused", _on_focus_change, (void*)1); - evas_object_smart_callback_add(obj, "unfocused", _on_focus_change, NULL); } EOLIAN static void @@ -5479,12 +5470,16 @@ _elm_widget_on_focus(Eo *obj, Elm_Widget_Smart_Data *sd) if (!sd->resize_obj) evas_object_focus_set(obj, EINA_TRUE); evas_object_smart_callback_call(obj, SIG_WIDGET_FOCUSED, NULL); + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_FOCUSED, EINA_TRUE); } else { if (!sd->resize_obj) evas_object_focus_set(obj, EINA_FALSE); evas_object_smart_callback_call(obj, SIG_WIDGET_UNFOCUSED, NULL); + if (_elm_config->atspi_mode) + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_FOCUSED, EINA_FALSE); } } else