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.
 

-- 


Reply via email to