diff options
author | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-07 05:23:21 +0000 |
---|---|---|
committer | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-07 05:23:21 +0000 |
commit | 3e7e4c33132b5a56d6a5a00eae1e8a3c796abc70 (patch) | |
tree | b50d9f24015b79da1a4d8831c296c60713aa4cf0 /views | |
parent | 6df09f6a59ea8730754b1290bb8c4332dfd18e47 (diff) | |
download | chromium_src-3e7e4c33132b5a56d6a5a00eae1e8a3c796abc70.zip chromium_src-3e7e4c33132b5a56d6a5a00eae1e8a3c796abc70.tar.gz chromium_src-3e7e4c33132b5a56d6a5a00eae1e8a3c796abc70.tar.bz2 |
Add WM_XBUTTON* and WM_NCXBUTTON* parsing.
Prevent NOTREACHED() on mouse back/forward buttons.
BUG=95544
TEST=Chrome Debug doesn't crash on mouse back/forward.
Review URL: http://codereview.chromium.org/7840008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99918 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views')
-rw-r--r-- | views/events/event_win.cc | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/views/events/event_win.cc b/views/events/event_win.cc index 609e190..6f0eab0 100644 --- a/views/events/event_win.cc +++ b/views/events/event_win.cc @@ -49,15 +49,21 @@ ui::EventType EventTypeFromNative(NativeEvent native_event) { case WM_NCMBUTTONDOWN: case WM_NCRBUTTONDBLCLK: case WM_NCRBUTTONDOWN: + case WM_NCXBUTTONDBLCLK: + case WM_NCXBUTTONDOWN: case WM_RBUTTONDBLCLK: case WM_RBUTTONDOWN: + case WM_XBUTTONDBLCLK: + case WM_XBUTTONDOWN: return ui::ET_MOUSE_PRESSED; case WM_LBUTTONUP: case WM_MBUTTONUP: case WM_NCLBUTTONUP: case WM_NCMBUTTONUP: case WM_NCRBUTTONUP: + case WM_NCXBUTTONUP: case WM_RBUTTONUP: + case WM_XBUTTONUP: return ui::ET_MOUSE_RELEASED; case WM_MOUSEMOVE: return IsButtonDown(native_event) ? ui::ET_MOUSE_DRAGGED : @@ -109,20 +115,30 @@ int EventFlagsFromNative(NativeEvent native_event) { case WM_NCRBUTTONUP: native_event.wParam |= MK_RBUTTON; break; + case WM_NCXBUTTONDBLCLK: + case WM_NCXBUTTONDOWN: + case WM_NCXBUTTONUP: + case WM_XBUTTONDBLCLK: + case WM_XBUTTONDOWN: + case WM_XBUTTONUP: + native_event.wParam |= MK_XBUTTON1; + break; } // Check if the event occurred in the non-client area. if (IsNonClientMouseEvent(native_event)) flags |= ui::EF_IS_NON_CLIENT; - // Check for double click events. + // Check for double click events. switch (native_event.message) { case WM_NCLBUTTONDBLCLK: case WM_NCMBUTTONDBLCLK: case WM_NCRBUTTONDBLCLK: + case WM_NCXBUTTONDBLCLK: case WM_LBUTTONDBLCLK: case WM_MBUTTONDBLCLK: case WM_RBUTTONDBLCLK: + case WM_XBUTTONDBLCLK: flags |= ui::EF_IS_DOUBLE_CLICK; break; } |