From 45cec28bc4fec2b3f5784b757ce85db7db333f18 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 12 Aug 2017 16:44:00 -0700 Subject: [PATCH] Fixed bug 3058 - Slight mistake in GetWindowStyle in SDL_windowswindow.c Coriiander There's a slight mistake in the function "GetWindowStyle" found in file "SDL_windowswindow.c". When a window is marked to be resizable, the resizable style is being added regardless of whether the window has a border or not. While for some arcane, hidden semantics this can be ok, it's still inconsistent in this case. --- src/video/windows/SDL_windowswindow.c | 30 ++++++++++----------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/src/video/windows/SDL_windowswindow.c b/src/video/windows/SDL_windowswindow.c index b80a5150d72f5..f1c14926a90d0 100644 --- a/src/video/windows/SDL_windowswindow.c +++ b/src/video/windows/SDL_windowswindow.c @@ -65,12 +65,10 @@ GetWindowStyle(SDL_Window * window) if (window->flags & SDL_WINDOW_FULLSCREEN) { style |= STYLE_FULLSCREEN; + } else if (window->flags & SDL_WINDOW_BORDERLESS) { + style |= STYLE_BORDERLESS; } else { - if (window->flags & SDL_WINDOW_BORDERLESS) { - style |= STYLE_BORDERLESS; - } else { - style |= STYLE_NORMAL; - } + style |= STYLE_NORMAL; if (window->flags & SDL_WINDOW_RESIZABLE) { style |= STYLE_RESIZABLE; } @@ -513,15 +511,11 @@ WIN_SetWindowBordered(_THIS, SDL_Window * window, SDL_bool bordered) { SDL_WindowData *data = (SDL_WindowData *)window->driverdata; HWND hwnd = data->hwnd; - DWORD style = GetWindowLong(hwnd, GWL_STYLE); + DWORD style; - if (bordered) { - style &= ~STYLE_BORDERLESS; - style |= STYLE_NORMAL; - } else { - style &= ~STYLE_NORMAL; - style |= STYLE_BORDERLESS; - } + style = GetWindowLong(hwnd, GWL_STYLE); + style &= ~STYLE_MASK; + style |= GetWindowStyle(window); data->in_border_change = SDL_TRUE; SetWindowLong(hwnd, GWL_STYLE, style); @@ -534,13 +528,11 @@ WIN_SetWindowResizable(_THIS, SDL_Window * window, SDL_bool resizable) { SDL_WindowData *data = (SDL_WindowData *)window->driverdata; HWND hwnd = data->hwnd; - DWORD style = GetWindowLong(hwnd, GWL_STYLE); + DWORD style; - if (resizable) { - style |= STYLE_RESIZABLE; - } else { - style &= ~STYLE_RESIZABLE; - } + style = GetWindowLong(hwnd, GWL_STYLE); + style &= ~STYLE_MASK; + style |= GetWindowStyle(window); SetWindowLong(hwnd, GWL_STYLE, style); }