| Index: views/widget/widget.cc
|
| diff --git a/views/widget/widget.cc b/views/widget/widget.cc
|
| index 07a6687a2eb13eb55aa613de75cb4e491245faa2..45423c6d40fa633753d1b3be05d21f06acc15712 100644
|
| --- a/views/widget/widget.cc
|
| +++ b/views/widget/widget.cc
|
| @@ -596,8 +596,14 @@ FocusManager* Widget::GetFocusManager() {
|
| }
|
|
|
| InputMethod* Widget::GetInputMethod() {
|
| - Widget* toplevel_widget = GetTopLevelWidget();
|
| - return toplevel_widget ? toplevel_widget->GetInputMethodDirect() : NULL;
|
| + if (is_top_level()) {
|
| + if (!input_method_.get())
|
| + ReplaceInputMethod(native_widget_->CreateInputMethod());
|
| + return input_method_.get();
|
| + } else {
|
| + Widget* toplevel = GetTopLevelWidget();
|
| + return toplevel ? toplevel->GetInputMethod() : NULL;
|
| + }
|
| }
|
|
|
| void Widget::RunShellDrag(View* view, const ui::OSExchangeData& data,
|
| @@ -976,8 +982,6 @@ bool Widget::ExecuteCommand(int command_id) {
|
| }
|
|
|
| InputMethod* Widget::GetInputMethodDirect() {
|
| - if (!input_method_.get() && is_top_level())
|
| - ReplaceInputMethod(native_widget_->CreateInputMethod());
|
| return input_method_.get();
|
| }
|
|
|
|
|