From db32da3f78298388eadb9238fa8d74b86a6d6f47 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() --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403541 --- 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 @@ Cocoa_CreateWindow(_THIS, SDL_Window * window) 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 @@ Cocoa_SetWindowPosition(_THIS, SDL_Window * window) 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);