diff options
author | Youngbok Shin <youngb.shin@samsung.com> | 2014-01-20 18:45:51 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2014-01-20 18:45:51 +0900 |
commit | d8821dea6997728a3645c171b0d2258d93d9d498 (patch) | |
tree | 95843fccad0631a513aa7c8fc341ad71f53d4258 | |
parent | eee7ea4130ec239ac5d009aa227c3b2bbcfece39 (diff) |
entry: Add smart activate for accessbility.
Summary:
In TTS mode, when the entry is highlighten and double tap to the entry,
the entry will be focused. But "clicked" smart callback is not called, input panel is not shown.
So I we need to call the callback and show input panel in smart activate.
Reviewers: seoz, Hermet, woohyun, tasn, jaehwan, raster
Reviewed By: raster
Differential Revision: https://phab.enlightenment.org/D465
-rw-r--r-- | src/lib/elm_entry.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 1ed060589..af3aeddaa 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c | |||
@@ -5808,6 +5808,27 @@ _anchor_hover_end(Eo *obj EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED) | |||
5808 | /* END - ANCHOR HOVER */ | 5808 | /* END - ANCHOR HOVER */ |
5809 | 5809 | ||
5810 | static void | 5810 | static void |
5811 | _elm_entry_smart_activate(Eo *obj, void *_pd EINA_UNUSED, va_list *list) | ||
5812 | { | ||
5813 | Elm_Activate act = va_arg(*list, Elm_Activate); | ||
5814 | Eina_Bool *ret = va_arg(*list, Eina_Bool *); | ||
5815 | if (ret) *ret = EINA_FALSE; | ||
5816 | |||
5817 | if (act != ELM_ACTIVATE_DEFAULT) return; | ||
5818 | |||
5819 | ELM_ENTRY_DATA_GET(obj, sd); | ||
5820 | |||
5821 | if (!elm_widget_disabled_get(obj) && | ||
5822 | !evas_object_freeze_events_get(obj)) | ||
5823 | { | ||
5824 | evas_object_smart_callback_call(obj, SIG_CLICKED, NULL); | ||
5825 | if (sd->editable && sd->input_panel_enable) | ||
5826 | edje_object_part_text_input_panel_show(sd->entry_edje, "elm.text"); | ||
5827 | } | ||
5828 | if (ret) *ret = EINA_TRUE; | ||
5829 | } | ||
5830 | |||
5831 | static void | ||
5811 | _elm_entry_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) | 5832 | _elm_entry_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) |
5812 | { | 5833 | { |
5813 | Eina_Bool *ret = va_arg(*list, Eina_Bool *); | 5834 | Eina_Bool *ret = va_arg(*list, Eina_Bool *); |
@@ -5839,6 +5860,7 @@ _class_constructor(Eo_Class *klass) | |||
5839 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_TRANSLATE), _elm_entry_smart_translate), | 5860 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_TRANSLATE), _elm_entry_smart_translate), |
5840 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ON_FOCUS_REGION), _elm_entry_smart_on_focus_region), | 5861 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ON_FOCUS_REGION), _elm_entry_smart_on_focus_region), |
5841 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_SUB_OBJECT_DEL), _elm_entry_smart_sub_object_del), | 5862 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_SUB_OBJECT_DEL), _elm_entry_smart_sub_object_del), |
5863 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ACTIVATE), _elm_entry_smart_activate), | ||
5842 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_entry_smart_focus_next_manager_is), | 5864 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_entry_smart_focus_next_manager_is), |
5843 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_entry_smart_focus_direction_manager_is), | 5865 | EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_entry_smart_focus_direction_manager_is), |
5844 | 5866 | ||