--- a/src/Libraries/INPUT/Source/sdl_events.c +++ b/src/Libraries/INPUT/Source/sdl_events.c @@ -737,7 +737,24 @@ break; case SDL_WINDOWEVENT_MOVED: + break; + case SDL_WINDOWEVENT_RESIZED: +#ifdef __ANDROID__ + // Android's SDL video backend (Android_SendResize() in + // src/video/android/SDL_androidvideo.c) only ever sends + // RESIZED for surface-driven resizes - e.g. the Quest Home + // shell settling the 2D panel into its requested + // defaultWidth/defaultHeight after activity launch - never + // SIZE_CHANGED (unlike desktop platforms, where an + // app-driven SDL_SetWindowSize() triggers both, handled + // above). Without this, opengl_resize() never re-runs after + // that late resize, leaving the GL viewport stuck at + // whatever (smaller) size the window first reported, + // rendered into one corner of the now-larger surface. + if (can_use_opengl()) + opengl_resize(ev.window.data1, ev.window.data2); +#endif break; case SDL_WINDOWEVENT_FOCUS_GAINED: