diff options
-rw-r--r-- | views/widget/native_widget_aura.cc | 17 | ||||
-rw-r--r-- | views/widget/native_widget_unittest.cc | 2 |
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 |