summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video_out/macosx/video_window.m14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/video_out/macosx/video_window.m b/src/video_out/macosx/video_window.m
index d4fc12786..543ce6ff3 100644
--- a/src/video_out/macosx/video_window.m
+++ b/src/video_out/macosx/video_window.m
@@ -92,6 +92,7 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification";
- (void) dealloc
{
[xineView release];
+ xineView = nil;
[super dealloc];
}
@@ -242,15 +243,23 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification";
[NSOpenGLContext clearCurrentContext];
[fullScreenContext clearDrawable];
[fullScreenContext release];
+ if (currentContext == fullScreenContext) currentContext = nil;
+ fullScreenContext = nil;
}
if (currentContext) {
[NSOpenGLContext clearCurrentContext];
[currentContext clearDrawable];
[currentContext release];
+ currentContext = nil;
}
- [super dealloc];
+ // Enabling the [super dealloc] below (which should be correct behaviour)
+ // crashes -- not sure why ...
+ //
+ // [super dealloc];
+ //
+ // Maybe dealloc in main thread?
}
- (void) reshape {
@@ -470,6 +479,7 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification";
[NSOpenGLContext clearCurrentContext];
[fullScreenContext clearDrawable];
[fullScreenContext release];
+ fullScreenContext = nil;
CGReleaseAllDisplays();
[self reshape];
@@ -534,6 +544,8 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification";
{
video_width = size.width;
video_height = size.height;
+
+ [self initTextures];
}
- (void) setViewSizeInMainThread:(NSSize)size