diff options
-rw-r--r-- | base/win/win_util.cc | 17 | ||||
-rw-r--r-- | base/win/win_util.h | 14 | ||||
-rw-r--r-- | content/browser/renderer_host/input/web_input_event_builders_win.cc | 40 | ||||
-rw-r--r-- | content/browser/renderer_host/input/web_input_event_util.cc | 4 | ||||
-rw-r--r-- | ui/events/BUILD.gn | 2 | ||||
-rw-r--r-- | ui/events/blink/blink_event_util.cc | 15 | ||||
-rw-r--r-- | ui/events/event.cc | 3 | ||||
-rw-r--r-- | ui/events/event_constants.h | 2 | ||||
-rw-r--r-- | ui/events/events.gyp | 2 | ||||
-rw-r--r-- | ui/events/test/events_test_utils_x11.cc | 1 | ||||
-rw-r--r-- | ui/events/win/events_win.cc | 23 | ||||
-rw-r--r-- | ui/events/win/system_event_state_lookup.cc | 47 | ||||
-rw-r--r-- | ui/events/win/system_event_state_lookup.h | 42 | ||||
-rw-r--r-- | ui/events/x/events_x.cc | 2 | ||||
-rw-r--r-- | ui/views/controls/menu/menu_runner_impl.cc | 4 | ||||
-rw-r--r-- | ui/views/win/hwnd_message_handler.cc | 10 | ||||
-rw-r--r-- | win8/metro_driver/chrome_app_view_ash.cc | 8 | ||||
-rw-r--r-- | win8/metro_driver/metro_driver.gyp | 1 |
18 files changed, 153 insertions, 84 deletions
diff --git a/base/win/win_util.cc b/base/win/win_util.cc index 98d451f..93ec543 100644 --- a/base/win/win_util.cc +++ b/base/win/win_util.cc @@ -290,23 +290,6 @@ bool GetUserSidString(std::wstring* user_sid) { return true; } -bool IsShiftPressed() { - return (::GetKeyState(VK_SHIFT) & 0x8000) == 0x8000; -} - -bool IsCtrlPressed() { - return (::GetKeyState(VK_CONTROL) & 0x8000) == 0x8000; -} - -bool IsAltPressed() { - return (::GetKeyState(VK_MENU) & 0x8000) == 0x8000; -} - -bool IsAltGrPressed() { - return (::GetKeyState(VK_MENU) & 0x8000) == 0x8000 && - (::GetKeyState(VK_CONTROL) & 0x8000) == 0x8000; -} - bool UserAccountControlIsEnabled() { // This can be slow if Windows ends up going to disk. Should watch this key // for changes and only read it once, preferably on the file thread. diff --git a/base/win/win_util.h b/base/win/win_util.h index 3c900ff..384db80 100644 --- a/base/win/win_util.h +++ b/base/win/win_util.h @@ -61,20 +61,6 @@ BASE_EXPORT void GetNonClientMetrics(NONCLIENTMETRICS_XP* metrics); // Returns the string representing the current user sid. BASE_EXPORT bool GetUserSidString(std::wstring* user_sid); -// Returns true if the shift key is currently pressed. -BASE_EXPORT bool IsShiftPressed(); - -// Returns true if the ctrl key is currently pressed. -BASE_EXPORT bool IsCtrlPressed(); - -// Returns true if the alt key is currently pressed. -BASE_EXPORT bool IsAltPressed(); - -// Returns true if the altgr key is currently pressed. -// Windows does not have specific key code and modifier bit and Alt+Ctrl key is -// used as AltGr key in Windows. -BASE_EXPORT bool IsAltGrPressed(); - // Returns false if user account control (UAC) has been disabled with the // EnableLUA registry flag. Returns true if user account control is enabled. // NOTE: The EnableLUA registry flag, which is ignored on Windows XP diff --git a/content/browser/renderer_host/input/web_input_event_builders_win.cc b/content/browser/renderer_host/input/web_input_event_builders_win.cc index 88aa3e8..faace7f 100644 --- a/content/browser/renderer_host/input/web_input_event_builders_win.cc +++ b/content/browser/renderer_host/input/web_input_event_builders_win.cc @@ -6,6 +6,8 @@ #include "base/logging.h" #include "content/browser/renderer_host/input/web_input_event_util.h" +#include "ui/events/blink/blink_event_util.h" +#include "ui/events/event_utils.h" #include "ui/gfx/win/dpi.h" using blink::WebInputEvent; @@ -18,15 +20,6 @@ namespace content { static const unsigned long kDefaultScrollLinesPerWheelDelta = 3; static const unsigned long kDefaultScrollCharsPerWheelDelta = 1; -// Loads the state for toggle keys into the event. -static void SetToggleKeyState(WebInputEvent* event) { - // Low bit set from GetKeyState indicates "toggled". - if (::GetKeyState(VK_NUMLOCK) & 1) - event->modifiers |= WebInputEvent::NumLockOn; - if (::GetKeyState(VK_CAPITAL) & 1) - event->modifiers |= WebInputEvent::CapsLockOn; -} - WebKeyboardEvent WebKeyboardEventBuilder::Build(HWND hwnd, UINT message, WPARAM wparam, @@ -71,12 +64,8 @@ WebKeyboardEvent WebKeyboardEventBuilder::Build(HWND hwnd, } result.setKeyIdentifierFromWindowsKeyCode(); - if (::GetKeyState(VK_SHIFT) & 0x8000) - result.modifiers |= WebInputEvent::ShiftKey; - if (::GetKeyState(VK_CONTROL) & 0x8000) - result.modifiers |= WebInputEvent::ControlKey; - if (::GetKeyState(VK_MENU) & 0x8000) - result.modifiers |= WebInputEvent::AltKey; + result.modifiers = + ui::EventFlagsToWebEventModifiers(ui::GetModifiersFromKeyState()); // NOTE: There doesn't seem to be a way to query the mouse button state in // this case. @@ -86,7 +75,6 @@ WebKeyboardEvent WebKeyboardEventBuilder::Build(HWND hwnd, if ((result.type == WebInputEvent::RawKeyDown) && (lparam & 0x40000000)) result.modifiers |= WebInputEvent::IsAutoRepeat; - SetToggleKeyState(&result); return result; } @@ -219,13 +207,12 @@ WebMouseEvent WebMouseEventBuilder::Build(HWND hwnd, result.clickCount = g_last_click_count; // set modifiers: - + result.modifiers = + ui::EventFlagsToWebEventModifiers(ui::GetModifiersFromKeyState()); if (wparam & MK_CONTROL) result.modifiers |= WebInputEvent::ControlKey; if (wparam & MK_SHIFT) result.modifiers |= WebInputEvent::ShiftKey; - if (::GetKeyState(VK_MENU) & 0x8000) - result.modifiers |= WebInputEvent::AltKey; if (wparam & MK_LBUTTON) result.modifiers |= WebInputEvent::LeftButtonDown; if (wparam & MK_MBUTTON) @@ -233,7 +220,6 @@ WebMouseEvent WebMouseEventBuilder::Build(HWND hwnd, if (wparam & MK_RBUTTON) result.modifiers |= WebInputEvent::RightButtonDown; - SetToggleKeyState(&result); return result; } @@ -253,8 +239,6 @@ WebMouseWheelEvent WebMouseWheelEventBuilder::Build(HWND hwnd, result.button = WebMouseEvent::ButtonNone; // Get key state, coordinates, and wheel delta from event. - typedef SHORT (WINAPI *GetKeyStateFunction)(int key); - GetKeyStateFunction get_key_state_func; UINT key_state; float wheel_delta; bool horizontal_scroll = false; @@ -262,11 +246,10 @@ WebMouseWheelEvent WebMouseWheelEventBuilder::Build(HWND hwnd, // Synthesize mousewheel event from a scroll event. This is needed to // simulate middle mouse scrolling in some laptops. Use GetAsyncKeyState // for key state since we are synthesizing the input event. - get_key_state_func = GetAsyncKeyState; key_state = 0; - if (get_key_state_func(VK_SHIFT) & 0x8000) + if (GetAsyncKeyState(VK_SHIFT) & 0x8000) key_state |= MK_SHIFT; - if (get_key_state_func(VK_CONTROL) & 0x8000) + if (GetAsyncKeyState(VK_CONTROL) & 0x8000) key_state |= MK_CONTROL; // NOTE: There doesn't seem to be a way to query the mouse button state // in this case. @@ -300,7 +283,6 @@ WebMouseWheelEvent WebMouseWheelEventBuilder::Build(HWND hwnd, horizontal_scroll = true; } else { // Non-synthesized event; we can just read data off the event. - get_key_state_func = ::GetKeyState; key_state = GET_KEYSTATE_WPARAM(wparam); result.globalX = static_cast<short>(LOWORD(lparam)); @@ -316,12 +298,12 @@ WebMouseWheelEvent WebMouseWheelEventBuilder::Build(HWND hwnd, horizontal_scroll = true; // Set modifiers based on key state. + result.modifiers = + ui::EventFlagsToWebEventModifiers(ui::GetModifiersFromKeyState()); if (key_state & MK_SHIFT) result.modifiers |= WebInputEvent::ShiftKey; if (key_state & MK_CONTROL) result.modifiers |= WebInputEvent::ControlKey; - if (get_key_state_func(VK_MENU) & 0x8000) - result.modifiers |= WebInputEvent::AltKey; if (key_state & MK_LBUTTON) result.modifiers |= WebInputEvent::LeftButtonDown; if (key_state & MK_MBUTTON) @@ -329,8 +311,6 @@ WebMouseWheelEvent WebMouseWheelEventBuilder::Build(HWND hwnd, if (key_state & MK_RBUTTON) result.modifiers |= WebInputEvent::RightButtonDown; - SetToggleKeyState(&result); - // Set coordinates by translating event coordinates from screen to client. POINT client_point = { result.globalX, result.globalY }; MapWindowPoints(0, hwnd, &client_point, 1); diff --git a/content/browser/renderer_host/input/web_input_event_util.cc b/content/browser/renderer_host/input/web_input_event_util.cc index 4265577..daf30ff 100644 --- a/content/browser/renderer_host/input/web_input_event_util.cc +++ b/content/browser/renderer_host/input/web_input_event_util.cc @@ -46,6 +46,10 @@ int WebEventModifiersToEventFlags(int modifiers) { flags |= ui::EF_RIGHT_MOUSE_BUTTON; if (modifiers & blink::WebInputEvent::CapsLockOn) flags |= ui::EF_CAPS_LOCK_DOWN; + if (modifiers & blink::WebInputEvent::NumLockOn) + flags |= ui::EF_NUM_LOCK_DOWN; + if (modifiers & blink::WebInputEvent::ScrollLockOn) + flags |= ui::EF_SCROLL_LOCK_DOWN; if (modifiers & blink::WebInputEvent::IsAutoRepeat) flags |= ui::EF_IS_REPEAT; diff --git a/ui/events/BUILD.gn b/ui/events/BUILD.gn index ac49329..867a513 100644 --- a/ui/events/BUILD.gn +++ b/ui/events/BUILD.gn @@ -115,6 +115,8 @@ component("events") { "null_event_targeter.cc", "null_event_targeter.h", "win/events_win.cc", + "win/system_event_state_lookup.cc", + "win/system_event_state_lookup.h", ] defines = [ "EVENTS_IMPLEMENTATION" ] diff --git a/ui/events/blink/blink_event_util.cc b/ui/events/blink/blink_event_util.cc index 4dca563..4b19b3e 100644 --- a/ui/events/blink/blink_event_util.cc +++ b/ui/events/blink/blink_event_util.cc @@ -201,8 +201,19 @@ int EventFlagsToWebEventModifiers(int flags) { if (flags & EF_ALT_DOWN) modifiers |= blink::WebInputEvent::AltKey; if (flags & EF_COMMAND_DOWN) +#if defined(OS_WIN) + // Evaluate whether OSKey should be set for other platforms. + // Since this value was never set on Windows before as the meta + // key; we don't break backwards compatiblity exposing it as the + // true OS key. However this is not the case for Linux; see + // http://crbug.com/539979 + modifiers |= blink::WebInputEvent::OSKey; +#else modifiers |= blink::WebInputEvent::MetaKey; +#endif + if (flags & EF_ALTGR_DOWN) + modifiers |= blink::WebInputEvent::AltGrKey; if (flags & EF_LEFT_MOUSE_BUTTON) modifiers |= blink::WebInputEvent::LeftButtonDown; if (flags & EF_MIDDLE_MOUSE_BUTTON) @@ -215,6 +226,10 @@ int EventFlagsToWebEventModifiers(int flags) { modifiers |= blink::WebInputEvent::IsAutoRepeat; if (flags & ui::EF_TOUCH_ACCESSIBILITY) modifiers |= blink::WebInputEvent::IsTouchAccessibility; + if (flags & ui::EF_NUM_LOCK_DOWN) + modifiers |= blink::WebInputEvent::NumLockOn; + if (flags & ui::EF_SCROLL_LOCK_DOWN) + modifiers |= blink::WebInputEvent::ScrollLockOn; return modifiers; } diff --git a/ui/events/event.cc b/ui/events/event.cc index 5907c27..ff725aa 100644 --- a/ui/events/event.cc +++ b/ui/events/event.cc @@ -878,9 +878,6 @@ void KeyEvent::NormalizeFlags() { case VKEY_MENU: mask = EF_ALT_DOWN; break; - case VKEY_CAPITAL: - mask = EF_CAPS_LOCK_DOWN; - break; default: return; } diff --git a/ui/events/event_constants.h b/ui/events/event_constants.h index 5aab3ff..70fdb72 100644 --- a/ui/events/event_constants.h +++ b/ui/events/event_constants.h @@ -94,6 +94,8 @@ enum EventFlags { EF_MOD3_DOWN = 1 << 11, EF_BACK_MOUSE_BUTTON = 1 << 12, EF_FORWARD_MOUSE_BUTTON = 1 << 13, + EF_NUM_LOCK_DOWN = 1 << 14, + EF_SCROLL_LOCK_DOWN = 1 << 15, }; // Flags specific to key events diff --git a/ui/events/events.gyp b/ui/events/events.gyp index 00ea04d..30cdaec 100644 --- a/ui/events/events.gyp +++ b/ui/events/events.gyp @@ -148,6 +148,8 @@ 'null_event_targeter.h', 'ozone/events_ozone.cc', 'win/events_win.cc', + 'win/system_event_state_lookup.cc', + 'win/system_event_state_lookup.h', 'x/events_x.cc', ], 'conditions': [ diff --git a/ui/events/test/events_test_utils_x11.cc b/ui/events/test/events_test_utils_x11.cc index cfb28b1..e16e7fa 100644 --- a/ui/events/test/events_test_utils_x11.cc +++ b/ui/events/test/events_test_utils_x11.cc @@ -23,6 +23,7 @@ unsigned int XEventState(int flags) { ((flags & ui::EF_SHIFT_DOWN) ? ShiftMask : 0) | ((flags & ui::EF_CONTROL_DOWN) ? ControlMask : 0) | ((flags & ui::EF_ALT_DOWN) ? Mod1Mask : 0) | + ((flags & ui::EF_NUM_LOCK_DOWN) ? Mod2Mask : 0) | ((flags & ui::EF_CAPS_LOCK_DOWN) ? LockMask : 0) | ((flags & ui::EF_ALTGR_DOWN) ? Mod5Mask : 0) | ((flags & ui::EF_COMMAND_DOWN) ? Mod4Mask : 0) | diff --git a/ui/events/win/events_win.cc b/ui/events/win/events_win.cc index 1f50e5d..c2f35f4 100644 --- a/ui/events/win/events_win.cc +++ b/ui/events/win/events_win.cc @@ -8,9 +8,9 @@ #include "base/logging.h" #include "base/time/time.h" -#include "base/win/win_util.h" #include "ui/events/event_utils.h" #include "ui/events/keycodes/keyboard_code_conversion_win.h" +#include "ui/events/win/system_event_state_lookup.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/win/dpi.h" @@ -104,10 +104,7 @@ bool IsScrollEvent(const base::NativeEvent& native_event) { // Returns a mask corresponding to the set of pressed modifier keys. // Checks the current global state and the state sent by client mouse messages. int KeyStateFlagsFromNative(const base::NativeEvent& native_event) { - int flags = 0; - flags |= base::win::IsAltPressed() ? EF_ALT_DOWN : EF_NONE; - flags |= base::win::IsShiftPressed() ? EF_SHIFT_DOWN : EF_NONE; - flags |= base::win::IsCtrlPressed() ? EF_CONTROL_DOWN : EF_NONE; + int flags = GetModifiersFromKeyState(); // Check key messages for the extended key flag. if (IsKeyEvent(native_event)) @@ -367,14 +364,22 @@ int GetModifiersFromACCEL(const ACCEL& accel) { int GetModifiersFromKeyState() { int modifiers = EF_NONE; - if (base::win::IsShiftPressed()) + if (ui::win::IsShiftPressed()) modifiers |= EF_SHIFT_DOWN; - if (base::win::IsCtrlPressed()) + if (ui::win::IsCtrlPressed()) modifiers |= EF_CONTROL_DOWN; - if (base::win::IsAltPressed()) + if (ui::win::IsAltPressed()) modifiers |= EF_ALT_DOWN; - if (base::win::IsAltGrPressed()) + if (ui::win::IsAltGrPressed()) modifiers |= EF_ALTGR_DOWN; + if (ui::win::IsWindowsKeyPressed()) + modifiers |= EF_COMMAND_DOWN; + if (ui::win::IsCapsLockOn()) + modifiers |= EF_CAPS_LOCK_DOWN; + if (ui::win::IsNumLockOn()) + modifiers |= EF_NUM_LOCK_DOWN; + if (ui::win::IsScrollLockOn()) + modifiers |= EF_SCROLL_LOCK_DOWN; return modifiers; } diff --git a/ui/events/win/system_event_state_lookup.cc b/ui/events/win/system_event_state_lookup.cc new file mode 100644 index 0000000..b9833f2 --- /dev/null +++ b/ui/events/win/system_event_state_lookup.cc @@ -0,0 +1,47 @@ +// Copyright (c) 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/events/win/system_event_state_lookup.h" + +#include <windows.h> + +namespace ui { +namespace win { + +bool IsShiftPressed() { + return (::GetKeyState(VK_SHIFT) & 0x8000) == 0x8000; +} + +bool IsCtrlPressed() { + return (::GetKeyState(VK_CONTROL) & 0x8000) == 0x8000; +} + +bool IsAltPressed() { + return (::GetKeyState(VK_MENU) & 0x8000) == 0x8000; +} + +bool IsAltGrPressed() { + return (::GetKeyState(VK_MENU) & 0x8000) == 0x8000 && + (::GetKeyState(VK_CONTROL) & 0x8000) == 0x8000; +} + +bool IsWindowsKeyPressed() { + return (::GetKeyState(VK_LWIN) & 0x8000) == 0x8000 || + (::GetKeyState(VK_RWIN) & 0x8000) == 0x8000; +} + +bool IsCapsLockOn() { + return (::GetKeyState(VK_CAPITAL) & 0x0001) == 0x0001; +} + +bool IsNumLockOn() { + return (::GetKeyState(VK_NUMLOCK) & 0x0001) == 0x0001; +} + +bool IsScrollLockOn() { + return (::GetKeyState(VK_SCROLL) & 0x0001) == 0x0001; +} + +} // namespace win +} // namespace ui diff --git a/ui/events/win/system_event_state_lookup.h b/ui/events/win/system_event_state_lookup.h new file mode 100644 index 0000000..e7ca6ba --- /dev/null +++ b/ui/events/win/system_event_state_lookup.h @@ -0,0 +1,42 @@ +// Copyright (c) 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_EVENTS_WIN_SYSTEM_EVENT_STATE_LOOKUP_H_ +#define UI_EVENTS_WIN_SYSTEM_EVENT_STATE_LOOKUP_H_ + +#include "ui/events/events_export.h" + +namespace ui { +namespace win { + +// Returns true if the shift key is currently pressed. +EVENTS_EXPORT bool IsShiftPressed(); + +// Returns true if the ctrl key is currently pressed. +EVENTS_EXPORT bool IsCtrlPressed(); + +// Returns true if the alt key is currently pressed. +EVENTS_EXPORT bool IsAltPressed(); + +// Returns true if the altgr key is currently pressed. +// Windows does not have specific key code and modifier bit and Alt+Ctrl key is +// used as AltGr key in Windows. +EVENTS_EXPORT bool IsAltGrPressed(); + +// Returns true if the Windows key is currently pressed. +EVENTS_EXPORT bool IsWindowsKeyPressed(); + +// Returns true if the caps lock state is on. +EVENTS_EXPORT bool IsCapsLockOn(); + +// Returns true if the num lock state is on. +EVENTS_EXPORT bool IsNumLockOn(); + +// Returns true if the scroll lock state is on. +EVENTS_EXPORT bool IsScrollLockOn(); + +} // namespace win +} // namespace ui + +#endif // UI_EVENTS_WIN_SYSTEM_EVENT_STATE_LOOKUP_H_ diff --git a/ui/events/x/events_x.cc b/ui/events/x/events_x.cc index f71fbcb..6afb53c 100644 --- a/ui/events/x/events_x.cc +++ b/ui/events/x/events_x.cc @@ -149,6 +149,8 @@ int GetEventFlagsFromXState(unsigned int state) { flags |= ui::EF_ALT_DOWN; if (state & LockMask) flags |= ui::EF_CAPS_LOCK_DOWN; + if (state & Mod2Mask) + flags |= ui::EF_NUM_LOCK_DOWN; if (state & Mod3Mask) flags |= ui::EF_MOD3_DOWN; if (state & Mod4Mask) diff --git a/ui/views/controls/menu/menu_runner_impl.cc b/ui/views/controls/menu/menu_runner_impl.cc index 4167be997..8ce4f3f 100644 --- a/ui/views/controls/menu/menu_runner_impl.cc +++ b/ui/views/controls/menu/menu_runner_impl.cc @@ -13,7 +13,7 @@ #include "ui/views/widget/widget.h" #if defined(OS_WIN) -#include "base/win/win_util.h" +#include "ui/events/win/system_event_state_lookup.h" #endif namespace views { @@ -208,7 +208,7 @@ bool MenuRunnerImpl::ShouldShowMnemonics(MenuButton* button) { #if defined(OS_WIN) // This is only needed on Windows. if (!show_mnemonics) - show_mnemonics = base::win::IsAltPressed(); + show_mnemonics = ui::win::IsAltPressed(); #endif return show_mnemonics; } diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc index 5348080..7d4857d 100644 --- a/ui/views/win/hwnd_message_handler.cc +++ b/ui/views/win/hwnd_message_handler.cc @@ -13,7 +13,6 @@ #include "base/debug/alias.h" #include "base/trace_event/trace_event.h" #include "base/win/scoped_gdi_object.h" -#include "base/win/win_util.h" #include "base/win/windows_version.h" #include "ui/base/touch/touch_enabled.h" #include "ui/base/view_prop.h" @@ -25,6 +24,7 @@ #include "ui/events/event.h" #include "ui/events/event_utils.h" #include "ui/events/keycodes/keyboard_code_conversion_win.h" +#include "ui/events/win/system_event_state_lookup.h" #include "ui/gfx/canvas.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/icon_util.h" @@ -2021,9 +2021,9 @@ void HWNDMessageHandler::OnSysCommand(UINT notification_code, // key and released it, so we should focus the menu bar. if ((notification_code & sc_mask) == SC_KEYMENU && point.x() == 0) { int modifiers = ui::EF_NONE; - if (base::win::IsShiftPressed()) + if (ui::win::IsShiftPressed()) modifiers |= ui::EF_SHIFT_DOWN; - if (base::win::IsCtrlPressed()) + if (ui::win::IsCtrlPressed()) modifiers |= ui::EF_CONTROL_DOWN; // Retrieve the status of shift and control keys to prevent consuming // shift+alt keys, which are used by Windows to change input languages. @@ -2330,8 +2330,8 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message, // doing this undesirable thing, but that means we need to roll the // sys-command handling ourselves. // Combine |w_param| with common key state message flags. - w_param |= base::win::IsCtrlPressed() ? MK_CONTROL : 0; - w_param |= base::win::IsShiftPressed() ? MK_SHIFT : 0; + w_param |= ui::win::IsCtrlPressed() ? MK_CONTROL : 0; + w_param |= ui::win::IsShiftPressed() ? MK_SHIFT : 0; } } } else if (message == WM_NCRBUTTONDOWN && diff --git a/win8/metro_driver/chrome_app_view_ash.cc b/win8/metro_driver/chrome_app_view_ash.cc index 776f23e..0660120 100644 --- a/win8/metro_driver/chrome_app_view_ash.cc +++ b/win8/metro_driver/chrome_app_view_ash.cc @@ -16,13 +16,13 @@ #include "base/path_service.h" #include "base/single_thread_task_runner.h" #include "base/win/metro.h" -#include "base/win/win_util.h" #include "base/win/windows_version.h" #include "chrome/common/chrome_switches.h" #include "ipc/ipc_channel.h" #include "ipc/ipc_channel_proxy.h" #include "ipc/ipc_sender.h" #include "ui/events/gesture_detection/motion_event.h" +#include "ui/events/win/system_event_state_lookup.h" #include "ui/gfx/geometry/point_conversions.h" #include "ui/gfx/win/dpi.h" #include "ui/metro_viewer/metro_viewer_messages.h" @@ -284,11 +284,11 @@ void RunMessageLoop(winui::Core::ICoreDispatcher* dispatcher) { // Helper to return the state of the shift/control/alt keys. uint32 GetKeyboardEventFlags() { uint32 flags = 0; - if (base::win::IsShiftPressed()) + if (ui::win::IsShiftPressed()) flags |= ui::EF_SHIFT_DOWN; - if (base::win::IsCtrlPressed()) + if (ui::win::IsCtrlPressed()) flags |= ui::EF_CONTROL_DOWN; - if (base::win::IsAltPressed()) + if (ui::win::IsAltPressed()) flags |= ui::EF_ALT_DOWN; return flags; } diff --git a/win8/metro_driver/metro_driver.gyp b/win8/metro_driver/metro_driver.gyp index 2720bb5..b1c17fd 100644 --- a/win8/metro_driver/metro_driver.gyp +++ b/win8/metro_driver/metro_driver.gyp @@ -53,6 +53,7 @@ '../../crypto/crypto.gyp:crypto', '../../ipc/ipc.gyp:ipc', '../../sandbox/sandbox.gyp:sandbox', + '../../ui/events/events.gyp:events', '../../ui/metro_viewer/metro_viewer.gyp:metro_viewer_messages', '../../ui/gfx/gfx.gyp:gfx', '../../ui/gfx/gfx.gyp:gfx_geometry', |