diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-01-23 14:54:58 -0500 |
---|---|---|
committer | Mike Blumenkrantz <zmike@samsung.com> | 2019-01-23 14:54:59 -0500 |
commit | 5253229aa19fa7b8717c7e26c7bfb218459c4279 (patch) | |
tree | 570b5cf8a131e9e3808f77455bcf2ef49a509552 | |
parent | a50edaf17b9f2eda6b2e73339a069c1158c160e4 (diff) | |
download | efl-5253229aa19fa7b8717c7e26c7bfb218459c4279.tar.gz |
efl_input_focus: add event_flags
Summary:
It appears that it could be interesting to know if a focus event has
already been procecced or not. However, a focus event based on scrolling
activity is not possible, therefore, error about that.
ref T7652
Reviewers: cedric, zmike, stefan_schmidt
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7652
Differential Revision: https://phab.enlightenment.org/D7732
-rw-r--r-- | src/lib/efl/interfaces/efl_common_internal.h | 1 | ||||
-rw-r--r-- | src/lib/evas/canvas/efl_input_focus.c | 16 | ||||
-rw-r--r-- | src/lib/evas/canvas/efl_input_focus.eo | 1 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/efl/interfaces/efl_common_internal.h b/src/lib/efl/interfaces/efl_common_internal.h index f0ca171a7d..11ca0cea07 100644 --- a/src/lib/efl/interfaces/efl_common_internal.h +++ b/src/lib/efl/interfaces/efl_common_internal.h @@ -116,6 +116,7 @@ struct _Efl_Input_Focus_Data Efl_Input_Device *device; //The seat Eo *object_wref; // wref on the focused object - Efl.Canvas.Object or Efl.Canvas. double timestamp; + Efl_Input_Flags event_flags; }; /* Internal helpers */ diff --git a/src/lib/evas/canvas/efl_input_focus.c b/src/lib/evas/canvas/efl_input_focus.c index 599cf4e37c..f43673bbad 100644 --- a/src/lib/evas/canvas/efl_input_focus.c +++ b/src/lib/evas/canvas/efl_input_focus.c @@ -130,6 +130,22 @@ _efl_input_focus_efl_input_event_reset(Eo *obj, Efl_Input_Focus_Data *pd) pd->eo = obj; } +EOLIAN static void +_efl_input_focus_efl_input_event_event_flags_set(Eo *obj EINA_UNUSED, Efl_Input_Focus_Data *pd, Efl_Input_Flags flags) +{ + if (flags == EFL_INPUT_FLAGS_SCROLLING) + ERR("A focus event cannot be created based on scrolling"); + else + pd->event_flags |= flags; +} + +EOLIAN static Efl_Input_Flags +_efl_input_focus_efl_input_event_event_flags_get(const Eo *obj EINA_UNUSED, Efl_Input_Focus_Data *pd) +{ + return pd->event_flags; +} + + /* Internal EO APIs */ #define EFL_INPUT_FOCUS_EXTRA_CLASS_OPS \ diff --git a/src/lib/evas/canvas/efl_input_focus.eo b/src/lib/evas/canvas/efl_input_focus.eo index 28bf5d391c..d15685a339 100644 --- a/src/lib/evas/canvas/efl_input_focus.eo +++ b/src/lib/evas/canvas/efl_input_focus.eo @@ -17,6 +17,7 @@ class Efl.Input.Focus extends Efl.Object implements Efl.Input.Event Efl.Object.destructor; Efl.Input.Event.device { get; set; } Efl.Input.Event.reset; + Efl.Input.Event.event_flags { get; set;} Efl.Duplicate.duplicate; [[Creates a copy of this event. @Efl.Input.Event.fake is $true. |