diff --git a/atom/browser/native_window.h b/atom/browser/native_window.h index e723dad5d1d..a3e3364cf6e 100644 --- a/atom/browser/native_window.h +++ b/atom/browser/native_window.h @@ -16,6 +16,7 @@ #include "base/supports_user_data.h" #include "content/public/browser/web_contents_user_data.h" #include "extensions/browser/app_window/size_constraints.h" +#include "ui/views/widget/widget_delegate.h" class SkRegion; @@ -47,7 +48,8 @@ class NativeBrowserView; struct DraggableRegion; -class NativeWindow : public base::SupportsUserData { +class NativeWindow : public base::SupportsUserData, + public views::WidgetDelegate { public: ~NativeWindow() override; diff --git a/atom/browser/native_window_mac.h b/atom/browser/native_window_mac.h index 19a0edc00a4..2b067af0094 100644 --- a/atom/browser/native_window_mac.h +++ b/atom/browser/native_window_mac.h @@ -12,8 +12,6 @@ #include "atom/browser/native_window.h" #include "base/mac/scoped_nsobject.h" -#include "ui/views/widget/widget_delegate.h" -#include "ui/views/widget/widget_observer.h" @class AtomNSWindow; @class AtomNSWindowDelegate; @@ -23,8 +21,7 @@ namespace atom { -class NativeWindowMac : public NativeWindow, - public views::WidgetDelegate { +class NativeWindowMac : public NativeWindow { public: NativeWindowMac(const mate::Dictionary& options, NativeWindow* parent); ~NativeWindowMac() override; diff --git a/atom/browser/native_window_views.cc b/atom/browser/native_window_views.cc index 0c81e7cea55..5a0a09493ae 100644 --- a/atom/browser/native_window_views.cc +++ b/atom/browser/native_window_views.cc @@ -138,6 +138,9 @@ NativeWindowViews::NativeWindowViews(const mate::Dictionary& options, maximizable_(true), minimizable_(true), fullscreenable_(true) { + // The root view is this class, it is managed by us. + set_owned_by_client(); + options.Get(options::kTitle, &title_); options.Get(options::kAutoHideMenuBar, &menu_bar_autohide_); diff --git a/atom/browser/native_window_views.h b/atom/browser/native_window_views.h index 4a71e70eac8..120da55df42 100644 --- a/atom/browser/native_window_views.h +++ b/atom/browser/native_window_views.h @@ -12,7 +12,6 @@ #include #include "atom/browser/ui/accelerator_util.h" -#include "ui/views/widget/widget_delegate.h" #include "ui/views/widget/widget_observer.h" #if defined(OS_WIN) @@ -41,7 +40,7 @@ class NativeWindowViews : public NativeWindow, #if defined(OS_WIN) public MessageHandlerDelegate, #endif - public views::WidgetDelegateView, + public views::View, public views::WidgetObserver { public: NativeWindowViews(const mate::Dictionary& options, NativeWindow* parent);