Fix SDL_GetWindowPosition to be properly monitor-aware and return the monitor x,y when fullscreened.
diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index 944c07d..a89399d 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -1679,12 +1679,31 @@ SDL_GetWindowPosition(SDL_Window * window, int *x, int *y)
/* Fullscreen windows are always at their display's origin */
if (window->flags & SDL_WINDOW_FULLSCREEN) {
+ int displayIndex;
+
if (x) {
*x = 0;
}
if (y) {
*y = 0;
}
+
+ /* Find the window's monitor and update to the
+ monitor offset. */
+ displayIndex = SDL_GetWindowDisplayIndex(window);
+ if (displayIndex >= 0) {
+ SDL_Rect bounds;
+
+ SDL_zero(bounds);
+
+ SDL_GetDisplayBounds(displayIndex, &bounds);
+ if (x) {
+ *x = bounds.x;
+ }
+ if (y) {
+ *y = bounds.y;
+ }
+ }
} else {
if (x) {
*x = window->x;