Browse Source

migrate to virtual void and start mac impl

Shelley Vohr 7 years ago
parent
commit
ae632193c0

+ 1 - 2
atom/browser/api/atom_api_window.cc

@@ -391,8 +391,7 @@ bool Window::IsEnabled() {
 }
 
 void Window::SetEnabled(bool enable) {
-  auto window = static_cast<NativeWindowViews*>(window_.get());
-  window->SetEnabled(enable);
+  window_->SetEnabled(enable);
 }
 
 void Window::Maximize() {

+ 1 - 0
atom/browser/native_window.h

@@ -80,6 +80,7 @@ class NativeWindow : public base::SupportsUserData,
   virtual void Hide() = 0;
   virtual bool IsVisible() = 0;
   virtual bool IsEnabled() = 0;
+  virtual void SetEnabled(bool enable) = 0;
   virtual void Maximize() = 0;
   virtual void Unmaximize() = 0;
   virtual bool IsMaximized() = 0;

+ 8 - 0
atom/browser/native_window_mac.mm

@@ -1135,6 +1135,14 @@ bool NativeWindowMac::IsEnabled() {
   return [window_ attachedSheet] == nil;
 }
 
+void NativeWindowMac::SetEnabled(bool enable) {
+  if (enable == false){
+    [window_ attachedSheet] = nil;
+  } else {
+    [window_ beginSheet:window_];
+  }
+}
+
 void NativeWindowMac::Maximize() {
   if (IsMaximized())
     return;

+ 1 - 1
atom/browser/native_window_views.h

@@ -132,7 +132,7 @@ class NativeWindowViews : public NativeWindow,
   void SetIcon(const gfx::ImageSkia& icon);
 #endif
 
-  void SetEnabled(bool enable);
+  void SetEnabled(bool enable) override;
 
   views::Widget* widget() const { return window_.get(); }