From dc907f501c166cc0268254e6002f4c33beff958e Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 20 May 2014 23:37:14 +0800 Subject: [PATCH] win: Fix the resizable flag, closed #316. --- atom/browser/native_window_win.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/atom/browser/native_window_win.cc b/atom/browser/native_window_win.cc index 28dd6dea91..27b0d634e6 100644 --- a/atom/browser/native_window_win.cc +++ b/atom/browser/native_window_win.cc @@ -205,6 +205,8 @@ NativeWindowWin::NativeWindowWin(content::WebContents* web_contents, web_view_(new views::WebView(NULL)), use_content_size_(false), resizable_(true) { + options->GetBoolean(switches::kResizable, &resizable_); + views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); params.delegate = this; params.native_widget = new MenuCommandNativeWidget(this); @@ -327,6 +329,15 @@ gfx::Size NativeWindowWin::GetMaximumSize() { void NativeWindowWin::SetResizable(bool resizable) { resizable_ = resizable; + + // WS_MAXIMIZEBOX => Maximize/Minimize button + // WS_THICKFRAME => Resize handle + DWORD style = ::GetWindowLong(GetNativeWindow(), GWL_STYLE); + if (resizable) + style |= WS_MAXIMIZEBOX | WS_THICKFRAME; + else + style &= ~(WS_MAXIMIZEBOX | WS_THICKFRAME); + ::SetWindowLong(GetNativeWindow(), GWL_STYLE, style); } bool NativeWindowWin::IsResizable() {