| 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 b0bd0e4b555b9be50f163fda8c074d0c8d342219..069be2b0f8bea3c65b57050729e818ab8ec0f321 100644
|
| --- a/ui/events/devices/x11/device_data_manager_x11.cc
|
| +++ b/ui/events/devices/x11/device_data_manager_x11.cc
|
| @@ -773,6 +773,16 @@ void DeviceDataManagerX11::UpdateScrollClassDevice(
|
| int deviceid) {
|
| DCHECK(deviceid >= 0 && deviceid < kMaxDeviceNum);
|
| ScrollInfo& info = scroll_data_[deviceid];
|
| +
|
| + bool legacy_scroll_available =
|
| + (scroll_class_info->flags & XIScrollFlagNoEmulation) == 0;
|
| + // If the device's highest resolution is lower than the resolution of xinput1
|
| + // then use xinput1's events instead (ie. don't configure smooth scrolling).
|
| + if (legacy_scroll_available &&
|
| + std::abs(scroll_class_info->increment) <= 1.0) {
|
| + return;
|
| + }
|
| +
|
| switch (scroll_class_info->scroll_type) {
|
| case XIScrollTypeVertical:
|
| info.vertical.number = scroll_class_info->number;
|
|
|