summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--views/widget/native_widget_aura.cc17
-rw-r--r--views/widget/native_widget_unittest.cc2
2 files changed, 9 insertions, 10 deletions
diff --git a/views/widget/native_widget_aura.cc b/views/widget/native_widget_aura.cc
index 527e257..98e6126 100644
--- a/views/widget/native_widget_aura.cc
+++ b/views/widget/native_widget_aura.cc
@@ -683,15 +683,16 @@ NativeWidgetPrivate* NativeWidgetPrivate::GetTopLevelNativeWidget(
gfx::NativeView native_view) {
if (!native_view)
return NULL;
- aura::Window* toplevel = native_view;
- aura::Window* parent = native_view->parent();
- while (parent) {
- if (parent->AsToplevelWindowContainer())
- return GetNativeWidgetForNativeView(toplevel);
- toplevel = parent;
- parent = parent->parent();
+
+ aura::Window* window = native_view;
+ NativeWidgetPrivate* top_level_native_widget = NULL;
+ while (window) {
+ NativeWidgetPrivate* native_widget = GetNativeWidgetForNativeView(window);
+ if (native_widget)
+ top_level_native_widget = native_widget;
+ window = window->parent();
}
- return NULL;
+ return top_level_native_widget;
}
// static
diff --git a/views/widget/native_widget_unittest.cc b/views/widget/native_widget_unittest.cc
index c880a3c..9c7218d 100644
--- a/views/widget/native_widget_unittest.cc
+++ b/views/widget/native_widget_unittest.cc
@@ -62,7 +62,6 @@ TEST_F(NativeWidgetTest, GetTopLevelNativeWidget1) {
widget->GetWidget()->GetNativeView()));
}
-#if !defined(USE_AURA)
// |toplevel_widget| has the toplevel NativeWidget.
TEST_F(NativeWidgetTest, GetTopLevelNativeWidget2) {
ScopedTestWidget toplevel_widget(internal::CreateNativeWidget());
@@ -80,6 +79,5 @@ TEST_F(NativeWidgetTest, GetTopLevelNativeWidget2) {
internal::NativeWidgetPrivate::GetTopLevelNativeWidget(
child_widget->GetWidget()->GetNativeView()));
}
-#endif
} // namespace views