X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/1ba99d2cfc96c804e7895c81c9a84d317bc47f7e..3ca5c28cafade2c9e0ada4d5b30c1d9b1be32f4c:/window.c diff --git a/window.c b/window.c index 8481d45b..52af23e2 100644 --- a/window.c +++ b/window.c @@ -1653,6 +1653,7 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, cfg.width != prev_cfg.width || cfg.savelines != prev_cfg.savelines || cfg.resize_action == RESIZE_FONT || + (cfg.resize_action == RESIZE_EITHER && IsZoomed(hwnd)) || cfg.resize_action == RESIZE_DISABLED) term_size(cfg.height, cfg.width, cfg.savelines); @@ -1685,10 +1686,17 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, nflg |= WS_VSCROLL; else nflg &= ~WS_VSCROLL; + + if (cfg.resize_action == RESIZE_DISABLED || + is_full_screen()) + nflg &= ~WS_THICKFRAME; + else + nflg |= WS_THICKFRAME; + if (cfg.resize_action == RESIZE_DISABLED) - nflg &= ~(WS_THICKFRAME | WS_MAXIMIZEBOX); + nflg &= ~WS_MAXIMIZEBOX; else - nflg |= (WS_THICKFRAME | WS_MAXIMIZEBOX); + nflg |= WS_MAXIMIZEBOX; if (nflg != flag || nexflag != exflag) { if (nflg != flag) @@ -2185,6 +2193,12 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, cfg.win_name_always ? window_name : icon_name); if (wParam == SIZE_RESTORED || wParam == SIZE_MAXIMIZED) SetWindowText(hwnd, window_name); + if (wParam == SIZE_RESTORED) + clear_full_screen(); + if (wParam == SIZE_MAXIMIZED && fullscr_on_max) { + make_full_screen(); + fullscr_on_max = FALSE; + } if (cfg.resize_action == RESIZE_DISABLED) { /* A resize, well it better be a minimize. */ @@ -2209,13 +2223,9 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, term_size(h, w, cfg.savelines); } - if (fullscr_on_max) - make_full_screen(); - fullscr_on_max = FALSE; reset_window(0); } else if (wParam == SIZE_RESTORED && was_zoomed) { was_zoomed = 0; - clear_full_screen(); if (cfg.resize_action == RESIZE_TERM) term_size(prev_rows, prev_cols, cfg.savelines); if (cfg.resize_action != RESIZE_FONT) @@ -3803,13 +3813,11 @@ void write_clip(wchar_t * data, int len, int must_deselect) len * sizeof(wchar_t)); clipdata2 = GlobalAlloc(GMEM_DDESHARE | GMEM_MOVEABLE, len2); - if (!clipdata || !clipdata2 || !clipdata3) { + if (!clipdata || !clipdata2) { if (clipdata) GlobalFree(clipdata); if (clipdata2) GlobalFree(clipdata2); - if (clipdata3) - GlobalFree(clipdata3); return; } if (!(lock = GlobalLock(clipdata))) @@ -4272,7 +4280,11 @@ void clear_full_screen() /* Reinstate the window furniture. */ style = oldstyle = GetWindowLong(hwnd, GWL_STYLE); - style |= WS_CAPTION | WS_BORDER | WS_THICKFRAME; + style |= WS_CAPTION | WS_BORDER; + if (cfg.resize_action == RESIZE_DISABLED) + style &= ~WS_THICKFRAME; + else + style |= WS_THICKFRAME; if (cfg.scrollbar) style |= WS_VSCROLL; else