diff --git a/atom/browser/api/atom_api_window.cc b/atom/browser/api/atom_api_window.cc index 9e8076fe8c9..c888676b196 100644 --- a/atom/browser/api/atom_api_window.cc +++ b/atom/browser/api/atom_api_window.cc @@ -68,8 +68,6 @@ void Window::WillCloseWindow(bool* prevent_default) { } void Window::OnWindowClosed() { - Emit("closed"); - if (api_web_contents_) { api_web_contents_->DestroyWebContents(); api_web_contents_ = nullptr; @@ -78,6 +76,8 @@ void Window::OnWindowClosed() { RemoveFromWeakMap(); window_->RemoveObserver(this); + + Emit("closed"); } void Window::OnWindowBlur() { diff --git a/atom/browser/native_window.cc b/atom/browser/native_window.cc index df717c8dec9..b5753c8bca6 100644 --- a/atom/browser/native_window.cc +++ b/atom/browser/native_window.cc @@ -443,10 +443,10 @@ void NativeWindow::NotifyWindowClosed() { if (is_closed_) return; + WindowList::RemoveWindow(this); + is_closed_ = true; FOR_EACH_OBSERVER(NativeWindowObserver, observers_, OnWindowClosed()); - - WindowList::RemoveWindow(this); } void NativeWindow::NotifyWindowBlur() {