summaryrefslogtreecommitdiffstats
path: root/ui/base/x
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-16 03:05:48 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-16 03:05:48 +0000
commitd5fe9900b9e30d13ae2a4c67b4a29ed81ae24643 (patch)
treeb9a984e445aaac6b5a7cac89d8d6a2ca7643bfdc /ui/base/x
parentc33a2f6bf817a1a3e2681d8ec628020121f8af1c (diff)
downloadchromium_src-d5fe9900b9e30d13ae2a4c67b4a29ed81ae24643.zip
chromium_src-d5fe9900b9e30d13ae2a4c67b4a29ed81ae24643.tar.gz
chromium_src-d5fe9900b9e30d13ae2a4c67b4a29ed81ae24643.tar.bz2
x11: Do not generate scroll events from mousewheel scrolls.
An external mouse can have some of the valuators we use for trackpad on chromeos. However, events from the external mouse still needs to be treated differently from the events generated by the touchpad. So generate MOUSEWHEEL events for external mouse scrolls, and SCROLL events for multi-finger scrolls in the touchpad. BUG=176574 Review URL: https://codereview.chromium.org/12279014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182902 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base/x')
-rw-r--r--ui/base/x/events_x.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/ui/base/x/events_x.cc b/ui/base/x/events_x.cc
index 00cafb5..3fba257f0 100644
--- a/ui/base/x/events_x.cc
+++ b/ui/base/x/events_x.cc
@@ -835,7 +835,7 @@ EventType EventTypeFromNative(const base::NativeEvent& native_event) {
return is_cancel ? ET_SCROLL_FLING_CANCEL : ET_SCROLL_FLING_START;
} else if (GetScrollOffsets(
native_event, NULL, NULL, NULL, NULL, NULL)) {
- return ET_SCROLL;
+ return IsTouchpadEvent(native_event) ? ET_SCROLL : ET_MOUSEWHEEL;
} else if (GetButtonMaskForX2Event(xievent)) {
return ET_MOUSE_DRAGGED;
} else {
@@ -1074,8 +1074,13 @@ int GetChangedMouseButtonFlagsFromNative(
}
int GetMouseWheelOffset(const base::NativeEvent& native_event) {
- int button = native_event->type == GenericEvent
- ? EventButtonFromNative(native_event) : native_event->xbutton.button;
+ float offset = 0;
+ if (native_event->type == GenericEvent &&
+ GetScrollOffsets(native_event, NULL, &offset, NULL, NULL, NULL))
+ return static_cast<int>(offset);
+
+ int button = native_event->type == GenericEvent ?
+ EventButtonFromNative(native_event) : native_event->xbutton.button;
switch (button) {
case 4: