Commit 25df5a5ac9662582dbe3c74115fb169cc8217720

Sam Lantinga 2017-11-28T18:31:18

Non-resizable windows need to have their window rect set to the client rect

diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c
index b73e9df..b12c0ce 100644
--- a/src/video/windows/SDL_windowsevents.c
+++ b/src/video/windows/SDL_windowsevents.c
@@ -951,9 +951,17 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
     case WM_NCCALCSIZE:
         {
-            // When borderless, need to tell windows that the size of the non-client area is 0
-            if ( wParam == TRUE && SDL_GetWindowFlags( data->window ) & SDL_WINDOW_BORDERLESS )
+            if (wParam == TRUE && SDL_GetWindowFlags(data->window) & SDL_WINDOW_BORDERLESS) {
+                /* When borderless, need to tell windows that the size of the non-client area is 0 */
+                if (!(SDL_GetWindowFlags(data->window) & SDL_WINDOW_RESIZABLE)) {
+                    int w, h;
+                    NCCALCSIZE_PARAMS *params = (NCCALCSIZE_PARAMS *)lParam;
+                    SDL_GetWindowSize(data->window, &w, &h);
+                    params->rgrc[0].right = params->rgrc[0].left + w;
+                    params->rgrc[0].bottom = params->rgrc[0].top + h;
+                }
                 return 0;
+            }
         }
         break;