summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authoryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-20 06:22:50 +0000
committeryusukes@google.com <yusukes@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-20 06:22:50 +0000
commit1027ebc3ec3fbb9fd44112e42bb06906895712bb (patch)
tree5bb1cd51e6d075f43f81675f4a3f59d0086b5167 /ui
parentfcbbf082d9e87a7590617b402952d57bffb4daa2 (diff)
downloadchromium_src-1027ebc3ec3fbb9fd44112e42bb06906895712bb.zip
chromium_src-1027ebc3ec3fbb9fd44112e42bb06906895712bb.tar.gz
chromium_src-1027ebc3ec3fbb9fd44112e42bb06906895712bb.tar.bz2
Fix the Windows implementation of EventGenerator::PressKey().
On Windows, we have to explicitly overwrite Event::flags_ since the flags are not determined by a MSG object but by GetKeyState() Win32 API. This CL is necessary for https://chromiumcodereview.appspot.com/9228013/. BUG=None TEST=try Review URL: https://chromiumcodereview.appspot.com/9241007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118414 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r--ui/aura/test/event_generator.cc16
-rw-r--r--ui/aura/test/event_generator.h8
2 files changed, 17 insertions, 7 deletions
diff --git a/ui/aura/test/event_generator.cc b/ui/aura/test/event_generator.cc
index 59d2854..8366915 100644
--- a/ui/aura/test/event_generator.cc
+++ b/ui/aura/test/event_generator.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 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.
@@ -15,6 +15,14 @@
namespace {
+class TestKeyEvent : public aura::KeyEvent {
+ public:
+ TestKeyEvent(const base::NativeEvent& native_event, int flags)
+ : KeyEvent(native_event, false /* is_char */) {
+ set_flags(flags);
+ }
+};
+
gfx::Point CenterOfWindowInRootWindowCoordinate(aura::Window* window) {
gfx::Point center = window->bounds().CenterPoint();
aura::RootWindow* root_window = aura::RootWindow::GetInstance();
@@ -169,14 +177,14 @@ void EventGenerator::DispatchKeyEvent(bool is_press,
int flags) {
#if defined(OS_WIN)
MSG native_event =
- { NULL, (is_press ? WM_KEYDOWN : WM_KEYUP), key_code, flags };
- KeyEvent keyev(native_event, false /* is_char */);
+ { NULL, (is_press ? WM_KEYDOWN : WM_KEYUP), key_code, 0 };
+ TestKeyEvent keyev(native_event, flags);
#else
ui::EventType type = is_press ? ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED;
#if defined(USE_X11)
scoped_ptr<XEvent> native_event(new XEvent);
ui::InitXKeyEventForTesting(type, key_code, flags, native_event.get());
- KeyEvent keyev(native_event.get(), false);
+ TestKeyEvent keyev(native_event.get(), flags);
#else
KeyEvent keyev(type, key_code, flags);
#endif // USE_X11
diff --git a/ui/aura/test/event_generator.h b/ui/aura/test/event_generator.h
index 80b83b1..7859010 100644
--- a/ui/aura/test/event_generator.h
+++ b/ui/aura/test/event_generator.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 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.
@@ -94,12 +94,14 @@ class EventGenerator {
void PressMoveAndReleaseTouchToCenterOf(Window* window);
// Generates a key press event. On platforms except Windows and X11, a key
- // event without native_event() is generated.
+ // event without native_event() is generated. Note that ui::EF_ flags should
+ // be passed as |flags|, not the native ones like 'ShiftMask' in <X11/X.h>.
// TODO(yusukes): Support native_event() on all platforms.
void PressKey(ui::KeyboardCode key_code, int flags);
// Generates a key release event. On platforms except Windows and X11, a key
- // event without native_event() is generated.
+ // event without native_event() is generated. Note that ui::EF_ flags should
+ // be passed as |flags|, not the native ones like 'ShiftMask' in <X11/X.h>.
// TODO(yusukes): Support native_event() on all platforms.
void ReleaseKey(ui::KeyboardCode key_code, int flags);