| Index: ui/events/x/events_x_utils.cc
|
| diff --git a/ui/events/x/events_x_utils.cc b/ui/events/x/events_x_utils.cc
|
| index aab272373068313cf5ae95cd5fbb27b34fa12287..54aa6247c8572adc638bdaf0d7ac530c4ef04902 100644
|
| --- a/ui/events/x/events_x_utils.cc
|
| +++ b/ui/events/x/events_x_utils.cc
|
| @@ -20,6 +20,7 @@
|
| #include "build/build_config.h"
|
| #include "ui/display/display.h"
|
| #include "ui/display/screen.h"
|
| +#include "ui/events/base_event_utils.h"
|
| #include "ui/events/devices/x11/device_data_manager_x11.h"
|
| #include "ui/events/devices/x11/device_list_cache_x11.h"
|
| #include "ui/events/devices/x11/touch_factory_x11.h"
|
| @@ -312,13 +313,13 @@ int64_t g_rollover_ms = 0;
|
| base::LazyInstance<std::unique_ptr<base::TickClock>>::Leaky g_tick_clock =
|
| LAZY_INSTANCE_INITIALIZER;
|
|
|
| -// Takes Xlib Time and returns a time delta that is immune to timer rollover.
|
| +// Takes Xlib Time and returns a time ticks that is immune to timer rollover.
|
| // This function is not thread safe as we do not use a lock.
|
| -base::TimeDelta TimeDeltaFromXEventTime(Time timestamp) {
|
| +base::TimeTicks TimeTicksFromXEventTime(Time timestamp) {
|
| int64_t timestamp64 = timestamp;
|
|
|
| if (!timestamp)
|
| - return base::TimeDelta();
|
| + return base::TimeTicks();
|
|
|
| // If this is the first event that we get, assume the time stamp roll-over
|
| // might have happened before the process was started.
|
| @@ -331,7 +332,8 @@ base::TimeDelta TimeDeltaFromXEventTime(Time timestamp) {
|
|
|
| g_last_seen_timestamp_ms = timestamp64;
|
| if (!had_recent_rollover)
|
| - return base::TimeDelta::FromMilliseconds(g_rollover_ms + timestamp);
|
| + return base::TimeTicks() +
|
| + base::TimeDelta::FromMilliseconds(g_rollover_ms + timestamp);
|
|
|
| DCHECK(timestamp64 <= UINT32_MAX)
|
| << "X11 Time does not roll over 32 bit, the below logic is likely wrong";
|
| @@ -348,7 +350,7 @@ base::TimeDelta TimeDeltaFromXEventTime(Time timestamp) {
|
| DCHECK(delta < 60 * 1000 || g_tick_clock.Get() != nullptr)
|
| << "Unexpected X11 event time, now: " << now_ticks
|
| << " event at: " << timestamp;
|
| - return base::TimeDelta::FromMilliseconds(now_ms - delta);
|
| + return base::TimeTicks() + base::TimeDelta::FromMilliseconds(now_ms - delta);
|
| }
|
|
|
| } // namespace
|
| @@ -525,41 +527,41 @@ int EventFlagsFromXEvent(const XEvent& xev) {
|
| return 0;
|
| }
|
|
|
| -base::TimeDelta EventTimeFromXEvent(const XEvent& xev) {
|
| +base::TimeTicks EventTimeFromXEvent(const XEvent& xev) {
|
| switch (xev.type) {
|
| case KeyPress:
|
| case KeyRelease:
|
| - return TimeDeltaFromXEventTime(xev.xkey.time);
|
| + return TimeTicksFromXEventTime(xev.xkey.time);
|
| case ButtonPress:
|
| case ButtonRelease:
|
| - return TimeDeltaFromXEventTime(xev.xbutton.time);
|
| + return TimeTicksFromXEventTime(xev.xbutton.time);
|
| break;
|
| case MotionNotify:
|
| - return TimeDeltaFromXEventTime(xev.xmotion.time);
|
| + return TimeTicksFromXEventTime(xev.xmotion.time);
|
| break;
|
| case EnterNotify:
|
| case LeaveNotify:
|
| - return TimeDeltaFromXEventTime(xev.xcrossing.time);
|
| + return TimeTicksFromXEventTime(xev.xcrossing.time);
|
| break;
|
| case GenericEvent: {
|
| double start, end;
|
| double touch_timestamp;
|
| if (GetGestureTimes(xev, &start, &end)) {
|
| // If the driver supports gesture times, use them.
|
| - return base::TimeDelta::FromMicroseconds(end * 1000000);
|
| + return ui::EventTimeStampFromSeconds(end);
|
| } else if (DeviceDataManagerX11::GetInstance()->GetEventData(
|
| xev, DeviceDataManagerX11::DT_TOUCH_RAW_TIMESTAMP,
|
| &touch_timestamp)) {
|
| - return base::TimeDelta::FromMicroseconds(touch_timestamp * 1000000);
|
| + return ui::EventTimeStampFromSeconds(touch_timestamp);
|
| } else {
|
| XIDeviceEvent* xide = static_cast<XIDeviceEvent*>(xev.xcookie.data);
|
| - return TimeDeltaFromXEventTime(xide->time);
|
| + return TimeTicksFromXEventTime(xide->time);
|
| }
|
| break;
|
| }
|
| }
|
| NOTREACHED();
|
| - return base::TimeDelta();
|
| + return base::TimeTicks();
|
| }
|
|
|
| gfx::Point EventLocationFromXEvent(const XEvent& xev) {
|
|
|