| Index: ui/events/devices/x11/device_data_manager_x11.cc
|
| diff --git a/ui/events/devices/x11/device_data_manager_x11.cc b/ui/events/devices/x11/device_data_manager_x11.cc
|
| index 85704437dfd2a84923762d0c9d770d7f18649661..230b7fa5328cbecf9e0ee76c31428712ea5489a2 100644
|
| --- a/ui/events/devices/x11/device_data_manager_x11.cc
|
| +++ b/ui/events/devices/x11/device_data_manager_x11.cc
|
| @@ -418,6 +418,11 @@ bool DeviceDataManagerX11::IsCMTGestureEvent(
|
|
|
| bool DeviceDataManagerX11::HasEventData(
|
| const XIDeviceEvent* xiev, const DataType type) const {
|
| + CHECK(xiev->sourceid >= 0);
|
| + if (xiev->sourceid >= kMaxDeviceNum)
|
| + return false;
|
| + if (type >= valuator_lookup_[xiev->sourceid].size())
|
| + return false;
|
| const int idx = valuator_lookup_[xiev->sourceid][type];
|
| return (idx >= 0) && XIMaskIsSet(xiev->valuators.mask, idx);
|
| }
|
| @@ -606,7 +611,8 @@ bool DeviceDataManagerX11::GetDataRange(int deviceid,
|
|
|
| void DeviceDataManagerX11::SetDeviceListForTest(
|
| const std::vector<int>& touchscreen,
|
| - const std::vector<int>& cmt_devices) {
|
| + const std::vector<int>& cmt_devices,
|
| + const std::vector<int>& other_devices) {
|
| for (int i = 0; i < kMaxDeviceNum; ++i) {
|
| valuator_count_[i] = 0;
|
| valuator_lookup_[i].clear();
|
| @@ -617,20 +623,23 @@ void DeviceDataManagerX11::SetDeviceListForTest(
|
| last_seen_valuator_[i][j].clear();
|
| }
|
|
|
| - for (size_t i = 0; i < touchscreen.size(); i++) {
|
| - int deviceid = touchscreen[i];
|
| + for (int deviceid : touchscreen) {
|
| InitializeValuatorsForTest(deviceid, kTouchDataTypeStart, kTouchDataTypeEnd,
|
| 0, 1000);
|
| }
|
|
|
| cmt_devices_.reset();
|
| - for (size_t i = 0; i < cmt_devices.size(); ++i) {
|
| - int deviceid = cmt_devices[i];
|
| + for (int deviceid : cmt_devices) {
|
| cmt_devices_[deviceid] = true;
|
| touchpads_[deviceid] = true;
|
| InitializeValuatorsForTest(deviceid, kCMTDataTypeStart, kCMTDataTypeEnd,
|
| -1000, 1000);
|
| }
|
| +
|
| + for (int deviceid : other_devices) {
|
| + InitializeValuatorsForTest(deviceid, kCMTDataTypeStart, kCMTDataTypeEnd,
|
| + -1000, 1000);
|
| + }
|
| }
|
|
|
| void DeviceDataManagerX11::SetValuatorDataForTest(XIDeviceEvent* xievent,
|
|
|