Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1868)

Unified Diff: ui/events/devices/x11/device_data_manager_x11.cc

Issue 1147293002: Stop dispatching mouse move events for wheel scrolling in X11. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address sadrul's comments. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/devices/x11/device_data_manager_x11.h ('k') | ui/events/test/events_test_utils_x11.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « ui/events/devices/x11/device_data_manager_x11.h ('k') | ui/events/test/events_test_utils_x11.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698