summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunsuChoi <jsuya.choi@samsung.com>2019-12-06 10:30:34 +0900
committerHermet Park <hermetpark@gmail.com>2019-12-06 10:30:34 +0900
commitc86f77ff6e700d96f7ba3634ba6c1116c1dc1941 (patch)
tree665466ab76ef40809c5db1ecd3f55dfce5bd8970
parent6e49a94c0e20a22866550c5f187cdd6ec32642f8 (diff)
downloadefl-c86f77ff6e700d96f7ba3634ba6c1116c1dc1941.tar.gz
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
-rw-r--r--src/lib/elementary/elm_label.c18
-rw-r--r--src/lib/elementary/elm_label_eo.c2
2 files changed, 20 insertions, 0 deletions
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;