summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWonki Kim <wonki_.kim@samsung.com>2019-01-29 07:06:33 -0500
committerChristopher Michael <cp.michael@samsung.com>2019-01-29 07:06:33 -0500
commit3bedc63315d8ff32e8db7dc99697d6c1bbf8a79d (patch)
treefcbb943ea9ebe54b0ed16f30e38c420210b5d1f5
parenta016f8e592d8e1fed68e231cda62313e9ac178a7 (diff)
downloadefl-3bedc63315d8ff32e8db7dc99697d6c1bbf8a79d.tar.gz
ecore_wl2_input: update a timestamp whenever possible
Summary: gettimeofday function returns a accumulated timestamp since around 1970 by the way, a argument from server looks like a system uptime based timestamp in some distribution such as tizen. so that this patch appends a logic that updates a timestamp inside Ecore_Wl2_Input* whenever possible to prevent gettimeofday function from being called. Reviewers: #reviewers, cedric, devilhorns Reviewed By: #reviewers, devilhorns Subscribers: devilhorns, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7766
-rw-r--r--src/lib/ecore_wl2/ecore_wl2_input.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c
index 721f6a10ee..0d480f50e8 100644
--- a/src/lib/ecore_wl2/ecore_wl2_input.c
+++ b/src/lib/ecore_wl2/ecore_wl2_input.c
@@ -765,6 +765,7 @@ _pointer_cb_button(void *data, struct wl_pointer *pointer EINA_UNUSED, unsigned
if (!input) return;
input->display->serial = serial;
+ input->timestamp = timestamp;
if (state == WL_POINTER_BUTTON_STATE_PRESSED)
{
@@ -802,6 +803,8 @@ _pointer_cb_axis(void *data, struct wl_pointer *pointer EINA_UNUSED, unsigned in
input = data;
if (!input) return;
+ input->timestamp = timestamp;
+
_ecore_wl2_input_mouse_wheel_send(input, axis, wl_fixed_to_int(value),
timestamp);
}
@@ -1056,6 +1059,7 @@ _keyboard_cb_key(void *data, struct wl_keyboard *keyboard EINA_UNUSED, unsigned
if (!window) return;
input->display->serial = serial;
+ input->timestamp = timestamp;
/* xkb rules reflect X broken keycodes, so offset by 8 */
code = keycode + 8;
@@ -1205,6 +1209,7 @@ _touch_cb_down(void *data, struct wl_touch *touch EINA_UNUSED, unsigned int seri
if (!window) return;
input->focus.touch = window;
+ input->timestamp = timestamp;
_pointer_cb_enter(data, NULL, serial, surface, x, y);