summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-08 00:44:49 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-08 00:44:49 +0000
commite61449d257bd231d718afe97a19a686feac2219d (patch)
treeac77b65f71988b8b645fa083be7d80ca69f70408
parent1ff4d28e69ec4e3f23a451789a373c20db6b38c1 (diff)
downloadchromium_src-e61449d257bd231d718afe97a19a686feac2219d.zip
chromium_src-e61449d257bd231d718afe97a19a686feac2219d.tar.gz
chromium_src-e61449d257bd231d718afe97a19a686feac2219d.tar.bz2
Ensure that keyboard input works in Windows 8 Metro Ash
This regressed with the recent InputMethod changes. Fix is to implement the InputMethodWin::DispatchFabricatedKeyEvent function to handle characters and keyboard events. Removed the corresponding implementation from the MockInputMethod class. BUG=151718 R=sky Review URL: https://codereview.chromium.org/11474031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171901 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ui/base/ime/input_method_win.cc17
-rw-r--r--ui/base/ime/input_method_win.h2
-rw-r--r--ui/base/ime/mock_input_method.cc15
-rw-r--r--ui/base/ime/mock_input_method.h3
4 files changed, 20 insertions, 17 deletions
diff --git a/ui/base/ime/input_method_win.cc b/ui/base/ime/input_method_win.cc
index 3e6474e..0bdc831 100644
--- a/ui/base/ime/input_method_win.cc
+++ b/ui/base/ime/input_method_win.cc
@@ -87,6 +87,23 @@ void InputMethodWin::DispatchKeyEvent(
DispatchKeyEventPostIME(native_key_event);
}
+void InputMethodWin::DispatchFabricatedKeyEvent(const ui::KeyEvent& event) {
+ // TODO(ananta)
+ // Support IMEs and RTL layout in Windows 8 metro Ash. The code below won't
+ // work with IMEs.
+ // Bug: https://code.google.com/p/chromium/issues/detail?id=164964
+ if (event.is_char()) {
+ if (GetTextInputClient()) {
+ GetTextInputClient()->InsertChar(event.key_code(),
+ ui::GetModifiersFromKeyState());
+ return;
+ }
+ }
+ DispatchFabricatedKeyEventPostIME(event.type(),
+ event.key_code(),
+ event.flags());
+}
+
void InputMethodWin::OnTextInputTypeChanged(const TextInputClient* client) {
if (IsTextInputClientFocused(client)) {
ime_input_.CancelIME(hwnd_);
diff --git a/ui/base/ime/input_method_win.h b/ui/base/ime/input_method_win.h
index 414b490..f89f7ee9 100644
--- a/ui/base/ime/input_method_win.h
+++ b/ui/base/ime/input_method_win.h
@@ -28,7 +28,7 @@ class UI_EXPORT InputMethodWin : public InputMethodBase {
virtual void OnBlur() OVERRIDE;
virtual void DispatchKeyEvent(
const base::NativeEvent& native_key_event) OVERRIDE;
- virtual void DispatchFabricatedKeyEvent(const ui::KeyEvent& event) OVERRIDE {}
+ virtual void DispatchFabricatedKeyEvent(const ui::KeyEvent& event) OVERRIDE;
virtual void OnTextInputTypeChanged(const TextInputClient* client) OVERRIDE;
virtual void OnCaretBoundsChanged(const TextInputClient* client) OVERRIDE;
virtual void CancelComposition(const TextInputClient* client) OVERRIDE;
diff --git a/ui/base/ime/mock_input_method.cc b/ui/base/ime/mock_input_method.cc
index 21c3dd4..62cd847 100644
--- a/ui/base/ime/mock_input_method.cc
+++ b/ui/base/ime/mock_input_method.cc
@@ -94,21 +94,6 @@ void MockInputMethod::DispatchKeyEvent(const base::NativeEvent& native_event) {
#endif
}
-void MockInputMethod::DispatchFabricatedKeyEvent(const ui::KeyEvent& event) {
-#if defined(OS_WIN)
- if (event.is_char()) {
- if (GetTextInputClient()) {
- GetTextInputClient()->InsertChar(event.key_code(),
- ui::GetModifiersFromKeyState());
- return;
- }
- }
- delegate_->DispatchFabricatedKeyEventPostIME(event.type(),
- event.key_code(),
- event.flags());
-#endif
-}
-
void MockInputMethod::Init(bool focused) {}
void MockInputMethod::OnFocus() {}
void MockInputMethod::OnBlur() {}
diff --git a/ui/base/ime/mock_input_method.h b/ui/base/ime/mock_input_method.h
index abfe55f..d9085b1 100644
--- a/ui/base/ime/mock_input_method.h
+++ b/ui/base/ime/mock_input_method.h
@@ -31,7 +31,8 @@ class UI_EXPORT MockInputMethod : NON_EXPORTED_BASE(public InputMethod) {
virtual void SetFocusedTextInputClient(TextInputClient* client) OVERRIDE;
virtual TextInputClient* GetTextInputClient() const OVERRIDE;
virtual void DispatchKeyEvent(const base::NativeEvent& native_event) OVERRIDE;
- virtual void DispatchFabricatedKeyEvent(const ui::KeyEvent& event) OVERRIDE;
+ virtual void DispatchFabricatedKeyEvent(const ui::KeyEvent& event) OVERRIDE {
+ }
virtual void OnTextInputTypeChanged(const TextInputClient* client) OVERRIDE;
virtual void OnCaretBoundsChanged(const TextInputClient* client) OVERRIDE;
virtual void CancelComposition(const TextInputClient* client) OVERRIDE;