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
This commit is contained in:
Wonki Kim 2019-01-29 07:06:33 -05:00 committed by Christopher Michael
parent a016f8e592
commit 3bedc63315
1 changed files with 5 additions and 0 deletions

View File

@ -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);