summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-01-23 14:54:58 -0500
committerMike Blumenkrantz <zmike@samsung.com>2019-01-23 14:54:59 -0500
commit5253229aa19fa7b8717c7e26c7bfb218459c4279 (patch)
tree570b5cf8a131e9e3808f77455bcf2ef49a509552
parenta50edaf17b9f2eda6b2e73339a069c1158c160e4 (diff)
downloadefl-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.h1
-rw-r--r--src/lib/evas/canvas/efl_input_focus.c16
-rw-r--r--src/lib/evas/canvas/efl_input_focus.eo1
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.