summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--TOOLS/lua/pause-when-minimize.lua2
-rw-r--r--video/out/cocoa/window.m10
-rw-r--r--video/out/cocoa_common.m22
3 files changed, 33 insertions, 1 deletions
diff --git a/TOOLS/lua/pause-when-minimize.lua b/TOOLS/lua/pause-when-minimize.lua
index 62e3ff5d27..69cb382b19 100644
--- a/TOOLS/lua/pause-when-minimize.lua
+++ b/TOOLS/lua/pause-when-minimize.lua
@@ -2,7 +2,7 @@
-- if it's brought back again. If the player was already paused when minimizing,
-- then try not to mess with the pause state.
--- Note: currently works with X11 only.
+-- Note: currently works with X11 or OS X only.
local did_minimize = false
diff --git a/video/out/cocoa/window.m b/video/out/cocoa/window.m
index 14a3ba91c8..646281df79 100644
--- a/video/out/cocoa/window.m
+++ b/video/out/cocoa/window.m
@@ -71,6 +71,16 @@
[self.adapter windowDidBecomeKey:notification];
}
+- (void)windowDidMiniaturize:(NSNotification *)notification
+{
+ [self.adapter windowDidMiniaturize:notification];
+}
+
+- (void)windowDidDeminiaturize:(NSNotification *)notification
+{
+ [self.adapter windowDidDeminiaturize:notification];
+}
+
- (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 608e380414..a1d2ac5e60 100644
--- a/video/out/cocoa_common.m
+++ b/video/out/cocoa_common.m
@@ -744,6 +744,16 @@ int vo_cocoa_control(struct vo *vo, int *events, int request, void *arg)
});
return VO_TRUE;
}
+ case VOCTRL_GET_WIN_STATE: {
+ with_cocoa_lock(vo->cocoa, ^{
+ if ([[vo->cocoa->view window] isMiniaturized]) {
+ *(int *)arg |= VO_WIN_STATE_MINIMIZED;
+ } else {
+ *(int *)arg = 0;
+ }
+ });
+ return VO_TRUE;
+ }
case VOCTRL_SET_CURSOR_VISIBILITY:
return vo_cocoa_set_cursor_visibility(vo, arg);
case VOCTRL_UPDATE_WINDOW_TITLE:
@@ -873,4 +883,16 @@ int vo_cocoa_control(struct vo *vo, int *events, int request, void *arg)
[self didChangeMousePosition];
}
+- (void)windowDidMiniaturize:(NSNotification *)notification
+{
+ struct vo_cocoa_state *s = self.vout->cocoa;
+ s->pending_events |= VO_EVENT_WIN_STATE;
+}
+
+- (void)windowDidDeminiaturize:(NSNotification *)notification
+{
+ struct vo_cocoa_state *s = self.vout->cocoa;
+ s->pending_events |= VO_EVENT_WIN_STATE;
+}
+
@end