diff options
author | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2015-03-08 17:40:01 +0100 |
---|---|---|
committer | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2015-03-08 22:00:47 +0100 |
commit | d7f04e20859708e69c1fc2538a19ca47ed025461 (patch) | |
tree | 22dac73b95ff6c17ab65514c0d7f7b60174adc8f | |
parent | 5c3a6ca96e8bb5275149e5763f27c6aaed35113d (diff) | |
download | mpv-d7f04e20859708e69c1fc2538a19ca47ed025461.tar.bz2 mpv-d7f04e20859708e69c1fc2538a19ca47ed025461.tar.xz |
cocoa: support the "window-minimized" property
Signed-off-by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
-rw-r--r-- | TOOLS/lua/pause-when-minimize.lua | 2 | ||||
-rw-r--r-- | video/out/cocoa/window.m | 10 | ||||
-rw-r--r-- | video/out/cocoa_common.m | 22 |
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 |