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 dedafac8c15df910495c9134426d49ad0c8d1cbe..9d83afe1e34c98dbdaa8e91337c4b4818b295d6e 100644 |
--- a/ui/events/devices/x11/device_data_manager_x11.cc |
+++ b/ui/events/devices/x11/device_data_manager_x11.cc |
@@ -218,7 +218,6 @@ bool DeviceDataManagerX11::IsXInput2Available() const { |
void DeviceDataManagerX11::UpdateDeviceList(Display* display) { |
cmt_devices_.reset(); |
touchpads_.reset(); |
- scrollclass_devices_.reset(); |
master_pointers_.clear(); |
for (int i = 0; i < kMaxDeviceNum; ++i) { |
valuator_count_[i] = 0; |
@@ -424,14 +423,13 @@ int DeviceDataManagerX11::GetScrollClassEventDetail(const XEvent& xev) const { |
XIDeviceEvent* xievent = static_cast<XIDeviceEvent*>(xev.xcookie.data); |
if (xievent->sourceid >= kMaxDeviceNum) |
return SCROLL_TYPE_NO_SCROLL; |
- if (!scrollclass_devices_[xievent->sourceid]) |
- return SCROLL_TYPE_NO_SCROLL; |
int horizontal_id = scroll_data_[xievent->sourceid].horizontal.number; |
int vertical_id = scroll_data_[xievent->sourceid].vertical.number; |
- return (XIMaskIsSet(xievent->valuators.mask, horizontal_id) |
+ return (horizontal_id != -1 && |
+ XIMaskIsSet(xievent->valuators.mask, horizontal_id) |
? SCROLL_TYPE_HORIZONTAL |
: 0) | |
- (XIMaskIsSet(xievent->valuators.mask, vertical_id) |
+ (vertical_id != -1 && XIMaskIsSet(xievent->valuators.mask, vertical_id) |
? SCROLL_TYPE_VERTICAL |
: 0); |
} |
@@ -787,7 +785,6 @@ void DeviceDataManagerX11::UpdateScrollClassDevice( |
info.horizontal.seen = false; |
break; |
} |
- scrollclass_devices_[deviceid] = true; |
} |
double DeviceDataManagerX11::ExtractAndUpdateScrollOffset( |