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.
--- 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;