summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
Diffstat (limited to 'video')
-rw-r--r--video/out/cocoa/mpvadapter.h1
-rw-r--r--video/out/cocoa/window.m10
-rw-r--r--video/out/cocoa_common.m8
3 files changed, 18 insertions, 1 deletions
diff --git a/video/out/cocoa/mpvadapter.h b/video/out/cocoa/mpvadapter.h
index f54c26593f..c5a0579a96 100644
--- a/video/out/cocoa/mpvadapter.h
+++ b/video/out/cocoa/mpvadapter.h
@@ -28,6 +28,7 @@
- (void)handleFilesArray:(NSArray *)files;
- (void)didChangeWindowedScreenProfile:(NSScreen *)screen;
- (void)performAsyncResize:(NSSize)size;
+- (void)didChangeMousePosition;
- (BOOL)isInFullScreenMode;
- (BOOL)keyboardEnabled;
diff --git a/video/out/cocoa/window.m b/video/out/cocoa/window.m
index 8d3b507e27..75adbbecb5 100644
--- a/video/out/cocoa/window.m
+++ b/video/out/cocoa/window.m
@@ -61,6 +61,16 @@
[self.adapter didChangeWindowedScreenProfile:[self screen]];
}
+- (void)windowDidResignKey:(NSNotification *)notification
+{
+ [self.adapter didChangeMousePosition];
+}
+
+- (void)windowDidBecomeKey:(NSNotification *)notification
+{
+ [self.adapter didChangeMousePosition];
+}
+
- (BOOL)canBecomeMainWindow { return YES; }
- (BOOL)canBecomeKeyWindow { return YES; }
- (BOOL)windowShouldClose:(id)sender
diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m
index c2cc2ece43..e4b0e9eca5 100644
--- a/video/out/cocoa_common.m
+++ b/video/out/cocoa_common.m
@@ -258,7 +258,7 @@ static int vo_cocoa_set_cursor_visibility(struct vo *vo, bool *visible)
if (*visible) {
CGDisplayShowCursor(kCGDirectMainDisplay);
- } else if ([v canHideCursor]) {
+ } else if ([v canHideCursor] && [s->window isKeyWindow]) {
CGDisplayHideCursor(kCGDirectMainDisplay);
} else {
*visible = true;
@@ -847,4 +847,10 @@ int vo_cocoa_control(struct vo *vo, int *events, int request, void *arg)
struct vo_cocoa_state *s = self.vout->cocoa;
s->pending_events |= VO_EVENT_ICC_PROFILE_CHANGED;
}
+
+- (void)didChangeMousePosition
+{
+ struct vo_cocoa_state *s = self.vout->cocoa;
+ [(MpvEventsView *)s->view signalMousePosition];
+}
@end