From b8473f0c11e3356cdf84d38ee5edf2062fc32824 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Tue, 13 Sep 2022 11:11:59 +0100 Subject: Windows: remove static variables in wintw_request_resize. Those have been there since around 2001. They're in a piece of code that calls get_fullscreen_rect to find the overall screen size, and then prevents attempts to resize the window larger than that. The static variables were arranging that we don't have to call get_fullscreen_rect more than once. But, firstly, computers are faster 20 years on; secondly, remote window-resize requests are intentionally rate-limited (as of commit d74308e90e3813a), so this shouldn't be the limiting factor anyway; and thirdly, multi-monitor support has appeared since then, which means that if the window has been dragged from one monitor to another then get_fullscreen_rect might _legitimately_ return a different bounding rectangle when called a second time. So we should just do the full check every time unconditionally. (cherry picked from commit 4b3a8cbf61ce4ee19227784ba27c52a9e47774fb) --- windows/window.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/windows/window.c b/windows/window.c index 059a123c..6ed581cd 100644 --- a/windows/window.c +++ b/windows/window.c @@ -1692,20 +1692,9 @@ static void wintw_request_resize(TermWin *tw, int w, int h) /* Sanity checks ... */ { - static int first_time = 1; - static RECT ss; - - switch (first_time) { - case 1: - /* Get the size of the screen */ - if (get_fullscreen_rect(&ss)) - /* first_time = 0 */ ; - else { - first_time = 2; - break; - } - case 0: - /* Make sure the values are sane */ + RECT ss; + if (get_fullscreen_rect(&ss)) { + /* Make sure the values aren't too big */ width = (ss.right - ss.left - extra_width) / 4; height = (ss.bottom - ss.top - extra_height) / 6; -- cgit v1.2.3