From 24055c0a90d233b0751cd454ad4d054db2422025 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 23 Jul 2003 04:39:44 +0000 Subject: [PATCH] Date: Thu, 24 Jul 2003 01:40:17 +0200 From: Andrew Straw Subject: Patch: Mac OS X window position environment variable --- src/video/quartz/SDL_QuartzVideo.m | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/video/quartz/SDL_QuartzVideo.m b/src/video/quartz/SDL_QuartzVideo.m index 9f6654432..5c2ea5928 100644 --- a/src/video/quartz/SDL_QuartzVideo.m +++ b/src/video/quartz/SDL_QuartzVideo.m @@ -253,6 +253,17 @@ static int QZ_VideoInit (_THIS, SDL_PixelFormat *video_format) { return client_mode_list; } +static SDL_bool QZ_WindowPosition(_THIS, int *x, int *y) +{ + const char *window = getenv("SDL_VIDEO_WINDOW_POS"); + if ( window ) { + if ( sscanf(window, "%d,%d", x, y) == 2 ) { + return SDL_TRUE; + } + } + return SDL_FALSE; +} + /* Gamma functions to try to hide the flash from a rez switch Fade the display from normal to black @@ -569,6 +580,8 @@ other blitting while waiting on the VBL (and hence results in higher framerates) int height, int bpp, Uint32 flags) { unsigned int style; NSRect contentRect; + int center_window = 1; + int origin_x, origin_y; current->flags = 0; current->w = width; @@ -606,6 +619,12 @@ other blitting while waiting on the VBL (and hence results in higher framerates) } } + if ( QZ_WindowPosition(this, &origin_x, &origin_y) ) { + center_window = 0; + contentRect.origin.x = (float)origin_x; + contentRect.origin.y = (float)origin_y; + } + /* Manually create a window, avoids having a nib file resource */ qz_window = [ [ SDL_QuartzWindow alloc ] initWithContentRect:contentRect @@ -622,7 +641,9 @@ other blitting while waiting on the VBL (and hence results in higher framerates) QZ_SetCaption(this, this->wm_title, this->wm_icon); [ qz_window setAcceptsMouseMovedEvents:YES ]; [ qz_window setViewsNeedDisplay:NO ]; - [ qz_window center ]; + if ( center_window ) { + [ qz_window center ]; + } [ qz_window setDelegate: [ [ [ SDL_QuartzWindowDelegate alloc ] init ] autorelease ] ]; }