Date: Thu, 24 Jul 2003 01:40:17 +0200
authorSam Lantinga <slouken@libsdl.org>
Wed, 23 Jul 2003 04:39:44 +0000
changeset 657 714053f573e7
parent 656 864e2d2a9a55
child 658 e71b7108d2d7
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
--- a/src/video/quartz/SDL_QuartzVideo.m	Tue Jul 22 15:33:28 2003 +0000
+++ b/src/video/quartz/SDL_QuartzVideo.m	Wed Jul 23 04:39:44 2003 +0000
@@ -253,6 +253,17 @@
     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 @@
                                          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 @@
             }
         }
                 
+        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 @@
         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 ] ];
     }