Przeglądaj źródła

gdk: Send window resize events on Xbox (#16158)

Caleb Cornett 1 miesiąc temu
rodzic
commit
c80d68fde5
1 zmienionych plików z 12 dodań i 0 usunięć
  1. 12 0
      src/video/windows/SDL_windowsevents.c

+ 12 - 0
src/video/windows/SDL_windowsevents.c

@@ -2499,7 +2499,19 @@ LRESULT CALLBACK WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
             WIN_UpdateDisplayUsableBounds(SDL_GetVideoDevice());
             WIN_UpdateDisplayUsableBounds(SDL_GetVideoDevice());
         }
         }
         break;
         break;
+#else
+    // Xbox does not support WM_WINDOWPOSCHANGED, so use WM_SIZE instead to detect window resizes
+    case WM_SIZE:
+    {
+        RECT rect;
+        int w, h;
 
 
+        if (GetClientRect(hwnd, &rect) && WIN_WindowRectValid(&rect)) {
+            w = rect.right;
+            h = rect.bottom;
+            SDL_SendWindowEvent(data->window, SDL_EVENT_WINDOW_RESIZED, w, h);
+        }
+    } break;
 #endif // !defined(SDL_PLATFORM_XBOXONE) && !defined(SDL_PLATFORM_XBOXSERIES)
 #endif // !defined(SDL_PLATFORM_XBOXONE) && !defined(SDL_PLATFORM_XBOXSERIES)
 
 
     default:
     default: