From c6b68c28f438f6f0f4e6b92782991211d868b858 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sun, 5 Oct 2014 18:07:27 +0200 Subject: cocoa: remove --fs-missioncontrol This is the first of a series of commits that will change the Cocoa way in a way that is easily embeddable inside parent views. To reach that point common code must avoid referencing the parent NSWindow since that could be the host application's window. --- DOCS/man/options.rst | 7 ------- options/m_config.c | 1 - options/options.c | 4 ---- options/options.h | 2 -- video/out/cocoa/window.h | 6 +----- video/out/cocoa/window.m | 40 +--------------------------------------- video/out/cocoa_common.m | 17 ++--------------- 7 files changed, 4 insertions(+), 73 deletions(-) diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index 0b6d16127b..a2e096f907 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -1618,13 +1618,6 @@ Window there is a change in video parameters, video stream or file. This used to be the default behavior. Currently only affects X11 VOs. -``--fs-missioncontrol`` - (OS X only) - Use OS X Mission Control's fullscreen feature instead of the custom one - provided by mpv. This can potentially break a lot of stuff like - ``--geometry`` and is disabled by default. On the other hand it provides - a more 'OS X-like' user experience. - ``--heartbeat-cmd=`` Command that is executed every 30 seconds during playback via *system()* - i.e. using the shell. The time between the commands can be customized with diff --git a/options/m_config.c b/options/m_config.c index c0ebd3cf70..46af3446a3 100644 --- a/options/m_config.c +++ b/options/m_config.c @@ -975,7 +975,6 @@ static const char *const replaced_opts = "|right-alt-gr#--input-right-alt-gr" "|autosub#--sub-auto" "|autosub-match#--sub-auto" - "|native-fs#--fs-missioncontrol" "|status-msg#--term-status-msg" "|idx#--index" "|forceidx#--index" diff --git a/options/options.c b/options/options.c index a6cb4eb45f..af30a584b9 100644 --- a/options/options.c +++ b/options/options.c @@ -443,10 +443,6 @@ const m_option_t mp_opts[] = { OPT_CHOICE_OR_INT("fs-screen", vo.fsscreen_id, 0, 0, 32, ({"all", -2}, {"current", -1})), -#if HAVE_COCOA - OPT_FLAG("fs-missioncontrol", vo.fs_missioncontrol, 0), -#endif - OPT_INTRANGE("brightness", gamma_brightness, 0, -100, 100), OPT_INTRANGE("saturation", gamma_saturation, 0, -100, 100), OPT_INTRANGE("contrast", gamma_contrast, 0, -100, 100), diff --git a/options/options.h b/options/options.h index 8d0b694d98..08af7b7fc2 100644 --- a/options/options.h +++ b/options/options.h @@ -36,8 +36,6 @@ typedef struct mp_vo_opts { float monitor_pixel_aspect; int force_window_position; - int fs_missioncontrol; - struct sws_opts *sws_opts; } mp_vo_opts; diff --git a/video/out/cocoa/window.h b/video/out/cocoa/window.h index e325be343e..485831a932 100644 --- a/video/out/cocoa/window.h +++ b/video/out/cocoa/window.h @@ -22,11 +22,7 @@ - (void)queueNewVideoSize:(NSSize)newSize; @end -@protocol MpvFullscreen -- (void)setFullScreen:(BOOL)willBeFullscreen; -@end - -@interface MpvVideoWindow : NSWindow +@interface MpvVideoWindow : NSWindow @property(nonatomic, retain) MpvCocoaAdapter *adapter; - (BOOL)canBecomeKeyWindow; - (BOOL)canBecomeMainWindow; diff --git a/video/out/cocoa/window.m b/video/out/cocoa/window.m index 597fa35d58..ece6246f34 100644 --- a/video/out/cocoa/window.m +++ b/video/out/cocoa/window.m @@ -63,26 +63,6 @@ [self.adapter didChangeWindowedScreenProfile:[self screen]]; } -- (BOOL)isInFullScreenMode -{ - return !!([self styleMask] & NSFullScreenWindowMask); -} - -- (void)setFullScreen:(BOOL)willBeFullscreen -{ - if (willBeFullscreen != [self isInFullScreenMode]) { - [super toggleFullScreen:nil]; - } -} - -- (void)toggleFullScreen:(id)sender { - if ([self isInFullScreenMode]) { - [self.adapter putCommand:"set fullscreen no"]; - } else { - [self.adapter putCommand:"set fullscreen yes"]; - } -} - - (BOOL)canBecomeMainWindow { return YES; } - (BOOL)canBecomeKeyWindow { return YES; } - (BOOL)windowShouldClose:(id)sender @@ -124,9 +104,6 @@ - (NSRect)constrainFrameRect:(NSRect)nf toScreen:(NSScreen *)screen { - if ([self isInFullScreenMode]) - return [super constrainFrameRect:nf toScreen:screen]; - NSRect of = [self frame]; NSRect vf = [screen ?: self.screen ?: [NSScreen mainScreen] visibleFrame]; NSRect ncf = [self contentRectForFrameRect:nf]; @@ -167,6 +144,7 @@ if (_queued_video_size.width <= 0.0 || _queued_video_size.height <= 0.0) return; + // XXX find a way to kill this state if (![self.adapter isInFullScreenMode]) { [self setContentAspectRatio:_queued_video_size]; [self setCenteredContentSize:_queued_video_size]; @@ -185,20 +163,4 @@ - (void)windowDidBecomeMain:(NSNotification *)notification { [self tryDequeueSize]; } - -- (NSSize)window:(NSWindow *)window willUseFullScreenContentSize:(NSSize)size { - return window.screen.frame.size; -} - -- (NSApplicationPresentationOptions)window:(NSWindow *)window - willUseFullScreenPresentationOptions:(NSApplicationPresentationOptions)opts { - return NSApplicationPresentationFullScreen | - NSApplicationPresentationAutoHideDock | - NSApplicationPresentationAutoHideMenuBar | - NSApplicationPresentationAutoHideToolbar; -} - -- (void)windowDidExitFullScreen:(NSNotification *)notification { - [self tryDequeueSize]; -} @end diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m index 7bf78a8ce5..bd2fdd3ff7 100644 --- a/video/out/cocoa_common.m +++ b/video/out/cocoa_common.m @@ -331,11 +331,6 @@ static void create_ui(struct vo *vo, struct mp_rect *win, int geo_flags) } vo_set_level(vo, opts->ontop); - - if (opts->fs_missioncontrol) { - [s->window setCollectionBehavior: - NSWindowCollectionBehaviorFullScreenPrimary]; - } } static void cocoa_set_window_title(struct vo *vo, const char *title) @@ -498,20 +493,12 @@ static void vo_cocoa_fullscreen(struct vo *vo) vo_cocoa_update_screen_info(vo, NULL); - if (opts->fs_missioncontrol) { - if ([s->window conformsToProtocol:@protocol(MpvFullscreen)]) { - id win = (id) s->window; - [win setFullScreen:opts->fullscreen]; - } - } else { - draw_changes_after_next_frame(vo); - [s->view setFullScreen:opts->fullscreen]; - } + draw_changes_after_next_frame(vo); + [s->view setFullScreen:opts->fullscreen]; if (s->icc_fs_profile_path != s->icc_wnd_profile_path) s->icc_profile_path_changed = true; - // Make the core aware of the view size change. resize_window(vo); } -- cgit v1.2.3