zmike pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5253229aa19fa7b8717c7e26c7bfb218459c4279
commit 5253229aa19fa7b8717c7e26c7bfb218459c4279 Author: Marcel Hollerbach <[email protected]> Date: Wed Jan 23 14:54:58 2019 -0500 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 --- src/lib/efl/interfaces/efl_common_internal.h | 1 + src/lib/evas/canvas/efl_input_focus.c | 16 ++++++++++++++++ src/lib/evas/canvas/efl_input_focus.eo | 1 + 3 files changed, 18 insertions(+) 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. --
