Index: ui/events/x/events_x.cc |
diff --git a/ui/events/x/events_x.cc b/ui/events/x/events_x.cc |
index 59e16cd3fccd34820672cd4ce85ef619e35f73c4..0b4888f6d228002b45391ee8065911dfffb2b3e1 100644 |
--- a/ui/events/x/events_x.cc |
+++ b/ui/events/x/events_x.cc |
@@ -459,8 +459,21 @@ gfx::Point EventLocationFromNative(const base::NativeEvent& native_event) { |
case GenericEvent: { |
XIDeviceEvent* xievent = |
static_cast<XIDeviceEvent*>(native_event->xcookie.data); |
- return gfx::Point(static_cast<int>(xievent->event_x), |
- static_cast<int>(xievent->event_y)); |
+ float x = xievent->event_x; |
+ float y = xievent->event_y; |
+#if defined(OS_CHROMEOS) |
+ switch (xievent->evtype) { |
+ case XI_TouchBegin: |
+ case XI_TouchUpdate: |
+ case XI_TouchEnd: |
+ ui::DeviceDataManager::GetInstance()->ApplyTouchTransformer( |
+ xievent->deviceid, &x, &y); |
+ break; |
+ default: |
+ break; |
+ } |
+#endif // defined(OS_CHROMEOS) |
+ return gfx::Point(static_cast<int>(x), static_cast<int>(y)); |
} |
} |
return gfx::Point(); |