Index: ui/base/x/events_x.cc |
diff --git a/ui/base/x/events_x.cc b/ui/base/x/events_x.cc |
index 8c2dff28b588be303844774b7c0027ef99154da3..11734ce75cd81448e3278ae3ab3b469b20d65db0 100644 |
--- a/ui/base/x/events_x.cc |
+++ b/ui/base/x/events_x.cc |
@@ -772,9 +772,13 @@ base::TimeDelta EventTimeFromNative(const base::NativeEvent& native_event) { |
break; |
case GenericEvent: { |
double start, end; |
+ float touch_timestamp; |
if (GetGestureTimes(native_event, &start, &end)) { |
// If the driver supports gesture times, use them. |
return base::TimeDelta::FromMicroseconds(end * 1000000); |
+ } else if (ValuatorTracker::GetInstance()->ExtractValuator(*native_event, |
+ ValuatorTracker::VAL_TOUCH_RAW_TIMESTAMP, &touch_timestamp)) { |
+ return base::TimeDelta::FromMicroseconds(touch_timestamp * 1000000); |
} else { |
XIDeviceEvent* xide = |
static_cast<XIDeviceEvent*>(native_event->xcookie.data); |