summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_out/macosx/video_window.h4
-rw-r--r--src/video_out/macosx/video_window.m26
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 */