Index: ui/views/widget/desktop_aura/desktop_native_widget_aura.cc |
diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc |
index 4e6c1c4e46da570505d5db71e9ed736515f10ab6..26828e00f96793cc1cb32b9069fafad76352648e 100644 |
--- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc |
+++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc |
@@ -178,6 +178,8 @@ DesktopNativeWidgetAura::~DesktopNativeWidgetAura() { |
CloseNow(); |
stacking_client_.reset(); // Uses root_window_ at destruction. |
+ |
+ root_window_->RemoveRootWindowObserver(this); |
root_window_.reset(); // Uses input_method_event_filter_ at destruction. |
input_method_event_filter_.reset(); |
} |
@@ -235,6 +237,8 @@ void DesktopNativeWidgetAura::InitNativeWidget( |
this, params.bounds); |
root_window_.reset( |
desktop_root_window_host_->Init(window_, params)); |
+ root_window_->AddRootWindowObserver(this); |
+ |
stacking_client_.reset( |
new DesktopNativeWidgetAuraStackingClient(root_window_.get())); |
drop_helper_.reset(new DropHelper( |
@@ -842,4 +846,12 @@ int DesktopNativeWidgetAura::OnPerformDrop(const ui::DropTargetEvent& event) { |
last_drop_operation_); |
} |
+//////////////////////////////////////////////////////////////////////////////// |
+// DesktopNativeWidgetAura, aura::RootWindowObserver implementation: |
+ |
+void DesktopNativeWidgetAura::OnRootWindowHostCloseRequested( |
+ const aura::RootWindow* root) { |
+ Close(); |
+} |
+ |
} // namespace views |