From d25645ba673af5dc2ae0640915d6029345256e8f Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 5 Aug 2014 20:41:26 +0800 Subject: [PATCH] win: Make BrowserWindow.setResizable change window frame dynamically. --- atom/browser/native_window_views.cc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/atom/browser/native_window_views.cc b/atom/browser/native_window_views.cc index 9dfbe89a6cd1..93ff0f3855c1 100644 --- a/atom/browser/native_window_views.cc +++ b/atom/browser/native_window_views.cc @@ -269,6 +269,21 @@ gfx::Size NativeWindowViews::GetMaximumSize() { void NativeWindowViews::SetResizable(bool resizable) { resizable_ = resizable; + +#if defined(OS_WIN) + if (has_frame_) { + // WS_MAXIMIZEBOX => Maximize button + // WS_MINIMIZEBOX => Minimize button + // WS_THICKFRAME => Resize handle + DWORD style = ::GetWindowLong(GetAcceleratedWidget(), GWL_STYLE); + if (resizable) + style |= WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_THICKFRAME; + else + style &= ~(WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_THICKFRAME); + ::SetWindowLong(GetAcceleratedWidget(), GWL_STYLE, style); + } +#endif + // FIXME Implement me for X11. }