diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-16 03:05:48 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-16 03:05:48 +0000 |
commit | d5fe9900b9e30d13ae2a4c67b4a29ed81ae24643 (patch) | |
tree | b9a984e445aaac6b5a7cac89d8d6a2ca7643bfdc /ui/base/x | |
parent | c33a2f6bf817a1a3e2681d8ec628020121f8af1c (diff) | |
download | chromium_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.cc | 11 |
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: |