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(); |
} |