Chromium Code Reviews| Index: ui/events/x/events_x.cc |
| diff --git a/ui/events/x/events_x.cc b/ui/events/x/events_x.cc |
| index e6fb3120d3e095b61fb387351a0be66f2fae5835..1dee583fd609f159e81451af894d9e686d370e7b 100644 |
| --- a/ui/events/x/events_x.cc |
| +++ b/ui/events/x/events_x.cc |
| @@ -444,6 +444,9 @@ EventType EventTypeFromNative(const base::NativeEvent& native_event) { |
| return devices->IsTouchpadXInputEvent(native_event) ? ET_SCROLL |
| : ET_MOUSEWHEEL; |
| } |
| + if (devices->IsScrollClassEvent(native_event)) { |
| + return ET_MOUSEWHEEL; |
| + } |
|
sadrul
2014/12/22 17:11:12
no {}
|
| if (devices->IsCMTMetricsEvent(native_event)) |
| return ET_UMA_DATA; |
| if (GetButtonMaskForX2Event(xievent)) |
| @@ -716,18 +719,35 @@ gfx::Vector2d GetMouseWheelOffset(const base::NativeEvent& native_event) { |
| static_cast<int>(y_offset)); |
| } |
| + double x_scroll_offset, y_scroll_offset; |
| + if (DeviceDataManagerX11::GetInstance()->IsScrollClassEvent(native_event)) { |
| + DeviceDataManagerX11::GetInstance()->GetScrollClassOffsets( |
| + native_event, |
| + &x_scroll_offset, &y_scroll_offset); |
| + return gfx::Vector2d( |
| + static_cast<int>(x_scroll_offset * kWheelScrollAmount), |
| + static_cast<int>(y_scroll_offset * kWheelScrollAmount)); |
| + } |
| + |
|
sadrul
2014/12/22 17:11:12
Can this block move into GetScrollOffsets() instea
|
| int button = native_event->type == GenericEvent ? |
| EventButtonFromNative(native_event) : native_event->xbutton.button; |
| + bool verticalScrollClass = |
| + DeviceDataManagerX11::GetInstance() |
| + ->IsScrollClassVerticalDevice(native_event); |
| + bool horizontalScrollClass = |
|
sadrul
2014/12/22 17:11:12
Should be vertical_scroll_class etc.
|
| + DeviceDataManagerX11::GetInstance() |
| + ->IsScrollClassHorizontalDevice(native_event); |
| + |
| switch (button) { |
| case 4: |
| - return gfx::Vector2d(0, kWheelScrollAmount); |
| + return gfx::Vector2d(0, verticalScrollClass ? 0 : kWheelScrollAmount); |
| case 5: |
| - return gfx::Vector2d(0, -kWheelScrollAmount); |
| + return gfx::Vector2d(0, verticalScrollClass ? 0 : -kWheelScrollAmount); |
| case 6: |
| - return gfx::Vector2d(kWheelScrollAmount, 0); |
| + return gfx::Vector2d(horizontalScrollClass ? 0 : kWheelScrollAmount, 0); |
| case 7: |
| - return gfx::Vector2d(-kWheelScrollAmount, 0); |
| + return gfx::Vector2d(horizontalScrollClass ? 0 : -kWheelScrollAmount, 0); |
| default: |
| return gfx::Vector2d(); |
| } |