From 88b40069bb1246e94b1fb298e88d6bdf2521d867 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 19 Feb 2009 04:15:04 +0000 Subject: [PATCH] Fixed bug using SDL_WINDOWPOS_CENTERED with SDL_SetWindowPosition() --- src/video/cocoa/SDL_cocoawindow.m | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index f13f9c5de..8e18a0a6f 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -387,14 +387,16 @@ - (BOOL)canBecomeMainWindow pool = [[NSAutoreleasePool alloc] init]; - if (window->x == SDL_WINDOWPOS_CENTERED) { + if ((window->flags & SDL_WINDOW_FULLSCREEN) + || window->x == SDL_WINDOWPOS_CENTERED) { rect.origin.x = (CGDisplayPixelsWide(kCGDirectMainDisplay) - window->w) / 2; } else if (window->x == SDL_WINDOWPOS_UNDEFINED) { rect.origin.x = 0; } else { rect.origin.x = window->x; } - if (window->y == SDL_WINDOWPOS_CENTERED) { + if ((window->flags & SDL_WINDOW_FULLSCREEN) + || window->y == SDL_WINDOWPOS_CENTERED) { rect.origin.y = (CGDisplayPixelsHigh(kCGDirectMainDisplay) - window->h) / 2; } else if (window->y == SDL_WINDOWPOS_UNDEFINED) { rect.origin.y = 0; @@ -471,8 +473,18 @@ - (BOOL)canBecomeMainWindow NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window; NSRect rect; - rect.origin.x = window->x; - rect.origin.y = window->y; + if ((window->flags & SDL_WINDOW_FULLSCREEN) + || window->x == SDL_WINDOWPOS_CENTERED) { + rect.origin.x = (CGDisplayPixelsWide(kCGDirectMainDisplay) - window->w) / 2; + } else { + rect.origin.x = window->x; + } + if ((window->flags & SDL_WINDOW_FULLSCREEN) + || window->y == SDL_WINDOWPOS_CENTERED) { + rect.origin.y = (CGDisplayPixelsHigh(kCGDirectMainDisplay) - window->h) / 2; + } else { + rect.origin.y = window->y; + } rect.size.width = window->w; rect.size.height = window->h; ConvertNSRect(&rect);