Fixed bug 1303 - SDL_CreateFromWindow duplicates window (Cocoa only)
authorSam Lantinga <slouken@libsdl.org>
Sun, 08 Jan 2012 00:39:41 -0500
changeset 6185 b91e7565e877
parent 6184 976d9ec6c290
child 6186 e565ac981de6
Fixed bug 1303 - SDL_CreateFromWindow duplicates window (Cocoa only) Jens Köhler 2011-09-09 04:47:40 PDT When calling SDL_CreateWindowFrom with a NSWindow which already contains a NSView, the window will be duplicated because another NSView is added. I attached a possible fix that prevents the creation of a second NSView.
src/video/cocoa/SDL_cocoawindow.m
--- a/src/video/cocoa/SDL_cocoawindow.m	Sun Jan 08 00:36:32 2012 -0500
+++ b/src/video/cocoa/SDL_cocoawindow.m	Sun Jan 08 00:39:41 2012 -0500
@@ -526,9 +526,13 @@
     /* Fill in the SDL window with the window data */
     {
         NSRect rect = [nswindow contentRectForFrameRect:[nswindow frame]];
-        NSView *contentView = [[SDLView alloc] initWithFrame:rect];
-        [nswindow setContentView: contentView];
-        [contentView release];
+        NSView *contentView = [ nswindow contentView ];
+        /* Create view if not already exists */
+        if (!contentView) {
+            contentView = [[SDLView alloc] initWithFrame:rect];
+            [nswindow setContentView: contentView];
+            [contentView release];
+        }
 
         ConvertNSRect(&rect);
         window->x = (int)rect.origin.x;