| Index: ui/base/x/events_x.cc
|
| diff --git a/ui/base/x/events_x.cc b/ui/base/x/events_x.cc
|
| index 09e8f85ea3cf18235fcc6f44299766c53fe4ad12..39404a5d66a9ef97db1fcfa62ab4a2d47984fa8a 100644
|
| --- a/ui/base/x/events_x.cc
|
| +++ b/ui/base/x/events_x.cc
|
| @@ -148,11 +148,21 @@ EventType EventTypeFromNative(const base::NativeEvent& native_event) {
|
| if (native_event->xbutton.button == 4 ||
|
| native_event->xbutton.button == 5)
|
| return ET_MOUSEWHEEL;
|
| +#if defined (OS_CHROMEOS)
|
| + if (native_event->xbutton.button == 8 ||
|
| + native_event->xbutton.button == 9)
|
| + return ET_MOUSEWHEEL;
|
| +#endif
|
| return ET_MOUSE_PRESSED;
|
| case ButtonRelease:
|
| if (native_event->xbutton.button == 4 ||
|
| native_event->xbutton.button == 5)
|
| return ET_MOUSEWHEEL;
|
| +#if defined (OS_CHROMEOS)
|
| + if (native_event->xbutton.button == 8 ||
|
| + native_event->xbutton.button == 9)
|
| + return ET_MOUSEWHEEL;
|
| +#endif
|
| return ET_MOUSE_RELEASED;
|
| case MotionNotify:
|
| if (native_event->xmotion.state &
|
| @@ -170,9 +180,17 @@ EventType EventTypeFromNative(const base::NativeEvent& native_event) {
|
| return GetTouchEventType(native_event);
|
| switch (xievent->evtype) {
|
| case XI_ButtonPress:
|
| +#if defined (OS_CHROMEOS)
|
| + if (xievent->detail == 8 || xievent->detail == 9)
|
| + return ET_MOUSEWHEEL;
|
| +#endif
|
| return (xievent->detail == 4 || xievent->detail == 5) ?
|
| ET_MOUSEWHEEL : ET_MOUSE_PRESSED;
|
| case XI_ButtonRelease:
|
| +#if defined (OS_CHROMEOS)
|
| + if (xievent->detail == 8 || xievent->detail == 9)
|
| + return ET_MOUSEWHEEL;
|
| +#endif
|
| return (xievent->detail == 4 || xievent->detail == 5) ?
|
| ET_MOUSEWHEEL : ET_MOUSE_RELEASED;
|
| case XI_Motion:
|
| @@ -254,13 +272,21 @@ bool IsMouseEvent(const base::NativeEvent& native_event) {
|
| }
|
|
|
| int GetMouseWheelOffset(const base::NativeEvent& native_event) {
|
| + int button;
|
| if (native_event->type == GenericEvent) {
|
| XIDeviceEvent* xiev =
|
| static_cast<XIDeviceEvent*>(native_event->xcookie.data);
|
| - return xiev->detail == 4 ? kWheelScrollAmount : -kWheelScrollAmount;
|
| + button = xiev->detail;
|
| + } else {
|
| + button = native_event->xbutton.button;
|
| }
|
| - return native_event->xbutton.button == 4 ?
|
| - kWheelScrollAmount : -kWheelScrollAmount;
|
| +#if defined(OS_CHROMEOS)
|
| + if (button == 8)
|
| + return kWheelScrollAmount;
|
| + else if (button == 9)
|
| + return -kWheelScrollAmount;
|
| +#endif
|
| + return button == 4 ? kWheelScrollAmount : -kWheelScrollAmount;
|
| }
|
|
|
| int GetTouchId(const base::NativeEvent& xev) {
|
|
|