win: Implement win.disable/enable/isEnabled() API
authorCheng Zhao <zcbenz@gmail.com>
Sun, 19 Jun 2016 03:18:48 +0000 (12:18 +0900)
committerCheng Zhao <zcbenz@gmail.com>
Mon, 20 Jun 2016 02:16:41 +0000 (11:16 +0900)
atom/browser/native_window_views.cc

index 4000af5..803a3e2 100644 (file)
@@ -187,6 +187,9 @@ NativeWindowViews::NativeWindowViews(
   if (options.Get(options::kFocusable, &focusable) && !focusable)
     params.activatable = views::Widget::InitParams::ACTIVATABLE_NO;
 
+  if (parent)
+    params.parent = parent->GetNativeWindow();
+
 #if defined(OS_WIN)
   params.native_widget =
       new views::DesktopNativeWidgetAura(window_.get());
@@ -376,13 +379,15 @@ bool NativeWindowViews::IsVisible() {
 }
 
 void NativeWindowViews::Disable() {
+  ::EnableWindow(GetAcceleratedWidget(), FALSE);
 }
 
 void NativeWindowViews::Enable() {
+  ::EnableWindow(GetAcceleratedWidget(), TRUE);
 }
 
 bool NativeWindowViews::IsEnabled() {
-  return true;
+  return ::IsWindowEnabled(GetAcceleratedWidget());
 }
 
 void NativeWindowViews::Maximize() {