| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include <stddef.h> | 5 #include <stddef.h> | 
| 6 #include <stdint.h> | 6 #include <stdint.h> | 
| 7 #include <X11/XKBlib.h> | 7 #include <X11/XKBlib.h> | 
| 8 #include <X11/Xlib.h> | 8 #include <X11/Xlib.h> | 
| 9 #include <X11/Xutil.h> | 9 #include <X11/Xutil.h> | 
| 10 #include <X11/extensions/XInput2.h> | 10 #include <X11/extensions/XInput2.h> | 
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 232   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 20)); | 232   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 20)); | 
| 233   valuators.push_back( | 233   valuators.push_back( | 
| 234       Valuator(DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.3f)); | 234       Valuator(DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.3f)); | 
| 235   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 100)); | 235   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 100)); | 
| 236   ui::ScopedXI2Event scoped_xevent; | 236   ui::ScopedXI2Event scoped_xevent; | 
| 237   scoped_xevent.InitTouchEvent( | 237   scoped_xevent.InitTouchEvent( | 
| 238       0, XI_TouchBegin, 5, gfx::Point(10, 10), valuators); | 238       0, XI_TouchBegin, 5, gfx::Point(10, 10), valuators); | 
| 239   EXPECT_EQ(ui::ET_TOUCH_PRESSED, ui::EventTypeFromNative(scoped_xevent)); | 239   EXPECT_EQ(ui::ET_TOUCH_PRESSED, ui::EventTypeFromNative(scoped_xevent)); | 
| 240   EXPECT_EQ("10,10", ui::EventLocationFromNative(scoped_xevent).ToString()); | 240   EXPECT_EQ("10,10", ui::EventLocationFromNative(scoped_xevent).ToString()); | 
| 241   EXPECT_EQ(GetTouchId(scoped_xevent), 0); | 241   EXPECT_EQ(GetTouchId(scoped_xevent), 0); | 
| 242   EXPECT_EQ(GetTouchRadiusX(scoped_xevent), 10); |  | 
| 243   EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.15f); | 242   EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.15f); | 
| 244   EXPECT_FLOAT_EQ(GetTouchForce(scoped_xevent), 0.1f); | 243   PointerDetails pointer_details = | 
|  | 244       GetTouchPointerDetailsFromNative(scoped_xevent); | 
|  | 245   EXPECT_FLOAT_EQ(pointer_details.radius_x(), 10.0f); | 
|  | 246   EXPECT_FLOAT_EQ(pointer_details.force(), 0.1f); | 
| 245 | 247 | 
| 246   // Touch update, with new orientation info. | 248   // Touch update, with new orientation info. | 
| 247   valuators.clear(); | 249   valuators.clear(); | 
| 248   valuators.push_back( | 250   valuators.push_back( | 
| 249       Valuator(DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.5f)); | 251       Valuator(DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.5f)); | 
| 250   scoped_xevent.InitTouchEvent( | 252   scoped_xevent.InitTouchEvent( | 
| 251       0, XI_TouchUpdate, 5, gfx::Point(20, 20), valuators); | 253       0, XI_TouchUpdate, 5, gfx::Point(20, 20), valuators); | 
| 252   EXPECT_EQ(ui::ET_TOUCH_MOVED, ui::EventTypeFromNative(scoped_xevent)); | 254   EXPECT_EQ(ui::ET_TOUCH_MOVED, ui::EventTypeFromNative(scoped_xevent)); | 
| 253   EXPECT_EQ("20,20", ui::EventLocationFromNative(scoped_xevent).ToString()); | 255   EXPECT_EQ("20,20", ui::EventLocationFromNative(scoped_xevent).ToString()); | 
| 254   EXPECT_EQ(GetTouchId(scoped_xevent), 0); | 256   EXPECT_EQ(GetTouchId(scoped_xevent), 0); | 
| 255   EXPECT_EQ(GetTouchRadiusX(scoped_xevent), 10); |  | 
| 256   EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.25f); | 257   EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.25f); | 
| 257   EXPECT_FLOAT_EQ(GetTouchForce(scoped_xevent), 0.1f); | 258   pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent); | 
|  | 259   EXPECT_FLOAT_EQ(pointer_details.radius_x(), 10.0f); | 
|  | 260   EXPECT_FLOAT_EQ(pointer_details.force(), 0.1f); | 
| 258 | 261 | 
| 259   // Another touch with tracking id 6, touch id 1. | 262   // Another touch with tracking id 6, touch id 1. | 
| 260   valuators.clear(); | 263   valuators.clear(); | 
| 261   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 100)); | 264   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 100)); | 
| 262   valuators.push_back(Valuator( | 265   valuators.push_back(Valuator( | 
| 263       DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.9f)); | 266       DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.9f)); | 
| 264   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 500)); | 267   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 500)); | 
| 265   scoped_xevent.InitTouchEvent( | 268   scoped_xevent.InitTouchEvent( | 
| 266       0, XI_TouchBegin, 6, gfx::Point(200, 200), valuators); | 269       0, XI_TouchBegin, 6, gfx::Point(200, 200), valuators); | 
| 267   EXPECT_EQ(ui::ET_TOUCH_PRESSED, ui::EventTypeFromNative(scoped_xevent)); | 270   EXPECT_EQ(ui::ET_TOUCH_PRESSED, ui::EventTypeFromNative(scoped_xevent)); | 
| 268   EXPECT_EQ("200,200", ui::EventLocationFromNative(scoped_xevent).ToString()); | 271   EXPECT_EQ("200,200", ui::EventLocationFromNative(scoped_xevent).ToString()); | 
| 269   EXPECT_EQ(GetTouchId(scoped_xevent), 1); | 272   EXPECT_EQ(GetTouchId(scoped_xevent), 1); | 
| 270   EXPECT_EQ(GetTouchRadiusX(scoped_xevent), 50); |  | 
| 271   EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.45f); | 273   EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.45f); | 
| 272   EXPECT_FLOAT_EQ(GetTouchForce(scoped_xevent), 0.5f); | 274   pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent); | 
|  | 275   EXPECT_FLOAT_EQ(pointer_details.radius_x(), 50.0f); | 
|  | 276   EXPECT_FLOAT_EQ(pointer_details.force(), 0.5f); | 
| 273 | 277 | 
| 274   // Touch with tracking id 5 should have old radius/angle value and new pressue | 278   // Touch with tracking id 5 should have old radius/angle value and new pressue | 
| 275   // value. | 279   // value. | 
| 276   valuators.clear(); | 280   valuators.clear(); | 
| 277   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 50)); | 281   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 50)); | 
| 278   scoped_xevent.InitTouchEvent( | 282   scoped_xevent.InitTouchEvent( | 
| 279       0, XI_TouchEnd, 5, gfx::Point(30, 30), valuators); | 283       0, XI_TouchEnd, 5, gfx::Point(30, 30), valuators); | 
| 280   EXPECT_EQ(ui::ET_TOUCH_RELEASED, ui::EventTypeFromNative(scoped_xevent)); | 284   EXPECT_EQ(ui::ET_TOUCH_RELEASED, ui::EventTypeFromNative(scoped_xevent)); | 
| 281   EXPECT_EQ("30,30", ui::EventLocationFromNative(scoped_xevent).ToString()); | 285   EXPECT_EQ("30,30", ui::EventLocationFromNative(scoped_xevent).ToString()); | 
| 282   EXPECT_EQ(GetTouchId(scoped_xevent), 0); | 286   EXPECT_EQ(GetTouchId(scoped_xevent), 0); | 
| 283   EXPECT_EQ(GetTouchRadiusX(scoped_xevent), 10); |  | 
| 284   EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.25f); | 287   EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.25f); | 
| 285   EXPECT_FLOAT_EQ(GetTouchForce(scoped_xevent), 0.05f); | 288   pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent); | 
|  | 289   EXPECT_FLOAT_EQ(pointer_details.radius_x(), 10.0f); | 
|  | 290   EXPECT_FLOAT_EQ(pointer_details.force(), 0.05f); | 
| 286 | 291 | 
| 287   // Touch with tracking id 6 should have old angle/pressure value and new | 292   // Touch with tracking id 6 should have old angle/pressure value and new | 
| 288   // radius value. | 293   // radius value. | 
| 289   valuators.clear(); | 294   valuators.clear(); | 
| 290   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 50)); | 295   valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 50)); | 
| 291   scoped_xevent.InitTouchEvent( | 296   scoped_xevent.InitTouchEvent( | 
| 292       0, XI_TouchEnd, 6, gfx::Point(200, 200), valuators); | 297       0, XI_TouchEnd, 6, gfx::Point(200, 200), valuators); | 
| 293   EXPECT_EQ(ui::ET_TOUCH_RELEASED, ui::EventTypeFromNative(scoped_xevent)); | 298   EXPECT_EQ(ui::ET_TOUCH_RELEASED, ui::EventTypeFromNative(scoped_xevent)); | 
| 294   EXPECT_EQ("200,200", ui::EventLocationFromNative(scoped_xevent).ToString()); | 299   EXPECT_EQ("200,200", ui::EventLocationFromNative(scoped_xevent).ToString()); | 
| 295   EXPECT_EQ(GetTouchId(scoped_xevent), 1); | 300   EXPECT_EQ(GetTouchId(scoped_xevent), 1); | 
| 296   EXPECT_EQ(GetTouchRadiusX(scoped_xevent), 25); |  | 
| 297   EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.45f); | 301   EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.45f); | 
| 298   EXPECT_FLOAT_EQ(GetTouchForce(scoped_xevent), 0.5f); | 302   pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent); | 
|  | 303   EXPECT_FLOAT_EQ(pointer_details.radius_x(), 25.0f); | 
|  | 304   EXPECT_FLOAT_EQ(pointer_details.force(), 0.5f); | 
| 299 } | 305 } | 
| 300 | 306 | 
| 301 int GetTouchIdForTrackingId(uint32_t tracking_id) { | 307 int GetTouchIdForTrackingId(uint32_t tracking_id) { | 
| 302   int slot = 0; | 308   int slot = 0; | 
| 303   bool success = | 309   bool success = | 
| 304       TouchFactory::GetInstance()->QuerySlotForTrackingID(tracking_id, &slot); | 310       TouchFactory::GetInstance()->QuerySlotForTrackingID(tracking_id, &slot); | 
| 305   if (success) | 311   if (success) | 
| 306     return slot; | 312     return slot; | 
| 307   return -1; | 313   return -1; | 
| 308 } | 314 } | 
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 505   ui::SetUpPointerDevicesForTest(devices); | 511   ui::SetUpPointerDevicesForTest(devices); | 
| 506 | 512 | 
| 507   ScopedXI2Event xev; | 513   ScopedXI2Event xev; | 
| 508   xev.InitScrollEvent(device_id, 1, 2, 3, 4, 1); | 514   xev.InitScrollEvent(device_id, 1, 2, 3, 4, 1); | 
| 509   // We shouldn't produce a mouse move event on a mouse wheel | 515   // We shouldn't produce a mouse move event on a mouse wheel | 
| 510   // scroll. These events are only produced for some mice. | 516   // scroll. These events are only produced for some mice. | 
| 511   EXPECT_EQ(ui::ET_UNKNOWN, ui::EventTypeFromNative(xev)); | 517   EXPECT_EQ(ui::ET_UNKNOWN, ui::EventTypeFromNative(xev)); | 
| 512 } | 518 } | 
| 513 | 519 | 
| 514 }  // namespace ui | 520 }  // namespace ui | 
| OLD | NEW | 
|---|