Index: base/message_loop/message_pump_win.cc |
diff --git a/base/message_loop/message_pump_win.cc b/base/message_loop/message_pump_win.cc |
index 10e308aa9dc3406ad5d1f02c5edca8e6a83573c9..e141c7cdb1b11236d5c56ee338364249bbf9bf49 100644 |
--- a/base/message_loop/message_pump_win.cc |
+++ b/base/message_loop/message_pump_win.cc |
@@ -400,10 +400,12 @@ bool MessagePumpForUI::ProcessMessageHelper(const MSG& msg) { |
} |
if (action & MessagePumpDispatcher::POST_DISPATCH_QUIT_LOOP) |
state_->should_quit = true; |
- if (action & MessagePumpDispatcher::POST_DISPATCH_PERFORM_DEFAULT) { |
- TranslateMessage(&msg); |
+ // Don't call TranslateMessage() here but call TranslateMessage() in |
+ // InputMethodWin, so that the WM_KEYDOWN/WM_KEYUP & WM_CHAR can be combined |
+ // for key event flow. The combination of key events is required for Chrome |
+ // IMEs, which can do IME related actions based on the single key event. |
+ if (action & MessagePumpDispatcher::POST_DISPATCH_PERFORM_DEFAULT) |
DispatchMessage(&msg); |
- } |
return true; |
} |