hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c86f77ff6e700d96f7ba3634ba6c1116c1dc1941
commit c86f77ff6e700d96f7ba3634ba6c1116c1dc1941 Author: JunsuChoi <[email protected]> Date: Fri Dec 6 10:30:34 2019 +0900 elm_label: Emit click signal on acivate action on label Summary: In accessibility enabled case click signal of legacy label is not triggered. Test Plan: N/A Reviewers: Hermet, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10803 --- src/lib/elementary/elm_label.c | 18 ++++++++++++++++++ src/lib/elementary/elm_label_eo.c | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/lib/elementary/elm_label.c b/src/lib/elementary/elm_label.c index 3d3e2a6af4..2279955f01 100644 --- a/src/lib/elementary/elm_label.c +++ b/src/lib/elementary/elm_label.c @@ -5,6 +5,7 @@ #define EFL_ACCESS_OBJECT_PROTECTED #define ELM_LAYOUT_PROTECTED #define EFL_PART_PROTECTED +#define EFL_ACCESS_WIDGET_ACTION_PROTECTED #include <Elementary.h> @@ -28,6 +29,13 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { {NULL, NULL} }; +static Eina_Bool +_action_activate(Evas_Object *obj, const char *params EINA_UNUSED) +{ + efl_event_callback_legacy_call(obj, EFL_INPUT_EVENT_CLICKED, NULL); + return EINA_TRUE; +} + static void _recalc(void *data) { @@ -416,6 +424,16 @@ elm_label_add(Evas_Object *parent) return elm_legacy_add(MY_CLASS, parent); } +EOLIAN const Efl_Access_Action_Data * +_elm_label_efl_access_widget_action_elm_actions_get(const Eo *obj EINA_UNUSED, Elm_Label_Data *pd EINA_UNUSED) +{ + static Efl_Access_Action_Data access_actions[] = { + { "activate", "activate", NULL, _action_activate }, + { NULL, NULL, NULL, NULL }, + }; + return &access_actions[0]; +} + EOLIAN static Eo * _elm_label_efl_object_constructor(Eo *obj, Elm_Label_Data *_pd EINA_UNUSED) { diff --git a/src/lib/elementary/elm_label_eo.c b/src/lib/elementary/elm_label_eo.c index 0ec366bad0..de24d9b94f 100644 --- a/src/lib/elementary/elm_label_eo.c +++ b/src/lib/elementary/elm_label_eo.c @@ -157,6 +157,7 @@ Eina_Error _elm_label_efl_ui_widget_theme_apply(Eo *obj, Elm_Label_Data *pd); Efl_Object *_elm_label_efl_part_part_get(const Eo *obj, Elm_Label_Data *pd, const char *name); +const Efl_Access_Action_Data *_elm_label_efl_access_widget_action_elm_actions_get(const Eo *obj, Elm_Label_Data *pd); static Eina_Bool _elm_label_class_initializer(Efl_Class *klass) @@ -186,6 +187,7 @@ _elm_label_class_initializer(Efl_Class *klass) EFL_OBJECT_OP_FUNC(efl_constructor, _elm_label_efl_object_constructor), EFL_OBJECT_OP_FUNC(efl_ui_widget_theme_apply, _elm_label_efl_ui_widget_theme_apply), EFL_OBJECT_OP_FUNC(efl_part_get, _elm_label_efl_part_part_get), + EFL_OBJECT_OP_FUNC(efl_access_widget_action_elm_actions_get, _elm_label_efl_access_widget_action_elm_actions_get), ELM_LABEL_EXTRA_OPS ); opsp = &ops; --
