diff --git a/atom/browser/native_window_views.cc b/atom/browser/native_window_views.cc index c774b9b459..6e75cbfe40 100644 --- a/atom/browser/native_window_views.cc +++ b/atom/browser/native_window_views.cc @@ -1216,6 +1216,14 @@ void NativeWindowViews::OnWidgetBoundsChanged(views::Widget* changed_widget, } } +void NativeWindowViews::OnWidgetDestroying(views::Widget* widget) { +#if defined(OS_LINUX) + aura::Window* window = GetNativeWindow(); + if (window) + window->RemovePreTargetHandler(this); +#endif +} + void NativeWindowViews::DeleteDelegate() { if (is_modal() && this->parent()) { auto* parent = this->parent(); diff --git a/atom/browser/native_window_views.h b/atom/browser/native_window_views.h index 2d4ab3ec19..fa207e6314 100644 --- a/atom/browser/native_window_views.h +++ b/atom/browser/native_window_views.h @@ -161,6 +161,7 @@ class NativeWindowViews : public NativeWindow, void AutoresizeBrowserView(int width_delta, int height_delta, NativeBrowserView* browser_view); + void OnWidgetDestroying(views::Widget* widget) override; // views::WidgetDelegate: void DeleteDelegate() override; views::View* GetInitiallyFocusedView() override;