| Index: ui/base/ime/input_method_auralinux.cc
|
| diff --git a/ui/base/ime/input_method_auralinux.cc b/ui/base/ime/input_method_auralinux.cc
|
| index ca9931f06f777e215e9012f9da4b9f1e3bb9fdca..d6ceeaa59e2c4ad826f4862ef4f4f6614f0aacd5 100644
|
| --- a/ui/base/ime/input_method_auralinux.cc
|
| +++ b/ui/base/ime/input_method_auralinux.cc
|
| @@ -46,6 +46,19 @@ bool InputMethodAuraLinux::OnUntranslatedIMEMessage(
|
| void InputMethodAuraLinux::DispatchKeyEvent(ui::KeyEvent* event) {
|
| DCHECK(event->type() == ET_KEY_PRESSED || event->type() == ET_KEY_RELEASED);
|
| DCHECK(system_toplevel_window_focused());
|
| + if (!system_toplevel_window_focused()) {
|
| + GetLogCollector()->AddString(
|
| + "Unexpected DispatchKeyEvent: InputMethod is not active.");
|
| + GetLogCollector()->DumpLogs();
|
| + // There are random issues that the keyboard typing doesn't work.
|
| + // The root cause might be the InputMethod::OnFocus() is not correctly
|
| + // called when the top-level window is activated
|
| + // (in DNWA::HandleActivationChanged).
|
| + // Calls OnFocus here to unblock the keyboard typing.
|
| + OnFocus();
|
| + } else {
|
| + GetLogCollector()->ClearLogs();
|
| + }
|
|
|
| // If no text input client, do nothing.
|
| if (!GetTextInputClient()) {
|
|
|