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
This commit is contained in:
junsu choi 2019-12-06 10:30:34 +09:00 committed by Hermet Park
parent 6e49a94c0e
commit c86f77ff6e
2 changed files with 20 additions and 0 deletions

View File

@ -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)
{

View File

@ -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;