summaryrefslogtreecommitdiffstats
path: root/ui/views
diff options
context:
space:
mode:
authormsw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-08 01:20:41 +0000
committermsw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-08 01:20:41 +0000
commitbb021bad4ee651f51b2b84cd2d35490206b0996d (patch)
treea2aacafd16a7bdf90d54387c7ff5831c61e0eecb /ui/views
parent7f23bac00f99429e34198b12322c11de3097e0ae (diff)
downloadchromium_src-bb021bad4ee651f51b2b84cd2d35490206b0996d.zip
chromium_src-bb021bad4ee651f51b2b84cd2d35490206b0996d.tar.gz
chromium_src-bb021bad4ee651f51b2b84cd2d35490206b0996d.tar.bz2
Add new MouseEvent ctors; update WidgetWin & WindowWin usage.
BUG=72040 TEST=Manual mouse event testing. Review URL: http://codereview.chromium.org/6591120 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77221 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/views')
-rw-r--r--ui/views/events/event_win.cc42
1 files changed, 17 insertions, 25 deletions
diff --git a/ui/views/events/event_win.cc b/ui/views/events/event_win.cc
index b0eb456..9259a54c 100644
--- a/ui/views/events/event_win.cc
+++ b/ui/views/events/event_win.cc
@@ -18,12 +18,9 @@ namespace {
// as with mouse messages, so we need to explicitly ask for these states.
int GetKeyStateFlags() {
int flags = 0;
- if (GetKeyState(VK_MENU) & 0x80)
- flags |= ui::Event::EF_ALT_DOWN;
- if (GetKeyState(VK_SHIFT) & 0x80)
- flags |= ui::Event::EF_SHIFT_DOWN;
- if (GetKeyState(VK_CONTROL) & 0x80)
- flags |= ui::Event::EF_CONTROL_DOWN;
+ flags |= (GetKeyState(VK_MENU) & 0x80)? ui::EF_ALT_DOWN : 0;
+ flags |= (GetKeyState(VK_SHIFT) & 0x80)? ui::EF_SHIFT_DOWN : 0;
+ flags |= (GetKeyState(VK_CONTROL) & 0x80)? ui::EF_CONTROL_DOWN : 0;
return flags;
}
@@ -32,6 +29,7 @@ ui::Event::EventType EventTypeFromNative(NativeEvent native_event) {
switch (native_event.message) {
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
+ case WM_CHAR:
return ui::Event::ET_KEY_PRESSED;
case WM_KEYUP:
case WM_SYSKEYUP:
@@ -72,22 +70,22 @@ ui::Event::EventType EventTypeFromNative(NativeEvent native_event) {
bool IsClientMouseEvent(NativeEvent native_event) {
return native_event.message == WM_MOUSELEAVE ||
+ native_event.message == WM_MOUSEHOVER ||
(native_event.message >= WM_MOUSEFIRST &&
native_event.message <= WM_MOUSELAST);
}
bool IsNonClientMouseEvent(NativeEvent native_event) {
return native_event.message == WM_NCMOUSELEAVE ||
+ native_event.message == WM_NCMOUSEHOVER ||
(native_event.message >= WM_NCMOUSEMOVE &&
- native_event.message <= WM_NCMBUTTONDBLCLK);
+ native_event.message <= WM_NCXBUTTONDBLCLK);
}
gfx::Point MousePositionFromNative(NativeEvent native_event) {
- if (IsClientMouseEvent(native_event)) {
- // Client message. The position is contained in the LPARAM.
- return gfx::Point(GET_X_LPARAM(native_event.lParam),
- GET_Y_LPARAM(native_event.lParam));
- }
+ // Client message. The position is contained in the LPARAM.
+ if (IsClientMouseEvent(native_event))
+ return gfx::Point(native_event.lParam);
DCHECK(IsNonClientMouseEvent(native_event));
// Non-client message. The position is contained in a POINTS structure in
// LPARAM, and is in screen coordinates so we have to convert to client.
@@ -143,20 +141,14 @@ int MouseEventFlagsFromNative(NativeEvent native_event) {
}
int MouseWheelEventFlagsFromNative(NativeEvent native_event) {
- int native_flags = GET_KEYSTATE_WPARAM(native_event.wParam);
+ int win_flags = GET_KEYSTATE_WPARAM(native_event.wParam);
int flags = 0;
- if (native_flags & MK_CONTROL)
- flags |= ui::Event::EF_CONTROL_DOWN;
- if (native_flags & MK_SHIFT)
- flags |= ui::Event::EF_SHIFT_DOWN;
- if (GetKeyState(VK_MENU) < 0)
- flags |= ui::Event::EF_ALT_DOWN;
- if (native_flags & MK_LBUTTON)
- flags |= ui::Event::EF_LEFT_BUTTON_DOWN;
- if (native_flags & MK_MBUTTON)
- flags |= ui::Event::EF_MIDDLE_BUTTON_DOWN;
- if (native_flags & MK_RBUTTON)
- flags |= ui::Event::EF_RIGHT_BUTTON_DOWN;
+ flags |= (win_flags & MK_CONTROL) ? ui::MouseEvent::EF_CONTROL_DOWN : 0;
+ flags |= (win_flags & MK_SHIFT) ? ui::MouseEvent::EF_SHIFT_DOWN : 0;
+ flags |= (GetKeyState(VK_MENU) < 0) ? ui::MouseEvent::EF_ALT_DOWN : 0;
+ flags |= (win_flags & MK_LBUTTON) ? ui::MouseEvent::EF_LEFT_BUTTON_DOWN : 0;
+ flags |= (win_flags & MK_MBUTTON) ? ui::MouseEvent::EF_MIDDLE_BUTTON_DOWN : 0;
+ flags |= (win_flags & MK_RBUTTON) ? ui::MouseEvent::EF_RIGHT_BUTTON_DOWN : 0;
return flags;
}