diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/video_out/macosx/video_window.h | 4 | ||||
-rw-r--r-- | src/video_out/macosx/video_window.m | 26 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/video_out/macosx/video_window.h b/src/video_out/macosx/video_window.h index 5b2dc9dcf..2eb705378 100644 --- a/src/video_out/macosx/video_window.h +++ b/src/video_out/macosx/video_window.h @@ -44,6 +44,7 @@ typedef enum { NSLock *mutex; BOOL keepsVideoAspectRatio; BOOL resizeViewOnVideoSizeChange; + NSCursor *currentCursor; } - (void) displayTexture; @@ -67,6 +68,9 @@ typedef enum { - (BOOL) keepsVideoAspectRatio; - (void) setResizeViewOnVideoSizeChange:(BOOL)flag; - (BOOL) resizeViewOnVideoSizeChange; +- (void) setCurrentCursor:(NSCursor *)cursor; +- (NSCursor *) currentCursor; +- (void) resetCursorRectsInMainThread; /* Delegate methods */ - (id) delegate; diff --git a/src/video_out/macosx/video_window.m b/src/video_out/macosx/video_window.m index d04ad139b..b94324e91 100644 --- a/src/video_out/macosx/video_window.m +++ b/src/video_out/macosx/video_window.m @@ -289,6 +289,7 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification"; video_height = frame.size.height; texture_buffer = nil; mutex = [[NSLock alloc] init]; + currentCursor = [NSCursor arrowCursor]; [self initTextures]; @@ -767,6 +768,31 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification"; return YES; } +- (void) setCurrentCursor:(NSCursor *)cursor +{ + currentCursor = cursor; + [self resetCursorRectsInMainThread]; +} + +- (NSCursor *) currentCursor +{ + return currentCursor; +} + +- (void) resetCursorRectsInMainThread +{ + [self discardCursorRects]; + [self performSelectorOnMainThread:@selector(resetCursorRects) + withObject:nil + waitUntilDone:NO]; +} + +- (void) resetCursorRects +{ + [self addCursorRect:[self visibleRect] cursor:currentCursor]; + [currentCursor set]; +} + @end /* XineOpenGLView */ |