Index: views/widget/widget.cc |
diff --git a/views/widget/widget.cc b/views/widget/widget.cc |
index c9a0f06d157e1c57e184d5f9d1ce5736ac1ba029..e108e843586e5ca30d16dff975a0a4902bb7f17a 100644 |
--- a/views/widget/widget.cc |
+++ b/views/widget/widget.cc |
@@ -622,7 +622,12 @@ InputMethod* Widget::GetInputMethod() { |
return input_method_.get(); |
} else { |
Widget* toplevel = GetTopLevelWidget(); |
- return toplevel ? toplevel->GetInputMethod() : NULL; |
+ // If GetTopLevelWidget() returns itself which is not toplevel, |
+ // the widget is detached from toplevel widget. |
+ // TODO(oshima): Fix GetTopLevelWidget() to return NULL |
+ // if there is no toplevel. We probably need to add GetTopMostWidget() |
+ // to replace some use cases. |
+ return (toplevel && toplevel != this) ? toplevel->GetInputMethod() : NULL; |
} |
} |