Index: views/widget/widget.cc |
diff --git a/views/widget/widget.cc b/views/widget/widget.cc |
index a02d9f29fdf7e7ce59e6254eb2b3013aa8934385..85552c9f7a586c46e7c775f80de60f49dcda71a0 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; |
sky
2011/09/21 21:01:46
nit: parens around toplevel && toplevel != this
oshima
2011/09/22 01:17:19
Done.
|
} |
} |