vlc | branch: master | Felix Paul Kühne <[email protected]> | Sat Jan 7 21:53:38 2012 +0100| [09ad74bd3606a9dc876f1d3647bd74e016d47a7a] | committer: Felix Paul Kühne
macosx: fix the window menu's close and minimize commands when using the black window style > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=09ad74bd3606a9dc876f1d3647bd74e016d47a7a --- modules/gui/macosx/CoreInteraction.h | 3 ++- modules/gui/macosx/CoreInteraction.m | 7 ++++++- modules/gui/macosx/MainWindow.h | 2 +- modules/gui/macosx/MainWindow.m | 29 +++++++++++++++++++++++++++-- modules/gui/macosx/intf.m | 13 ++----------- 5 files changed, 38 insertions(+), 16 deletions(-) diff --git a/modules/gui/macosx/CoreInteraction.h b/modules/gui/macosx/CoreInteraction.h index 085997a..b155586 100644 --- a/modules/gui/macosx/CoreInteraction.h +++ b/modules/gui/macosx/CoreInteraction.h @@ -1,7 +1,7 @@ /***************************************************************************** * CoreInteraction.h: MacOS X interface module ***************************************************************************** - * Copyright (C) 2011 Felix Paul Kühne + * Copyright (C) 2011-2012 Felix Paul Kühne * $Id$ * * Authors: Felix Paul Kühne <fkuehne -at- videolan -dot- org> @@ -32,6 +32,7 @@ + (VLCCoreInteraction *)sharedInstance; - (void)play; +- (void)pause; - (void)stop; - (void)faster; - (void)slower; diff --git a/modules/gui/macosx/CoreInteraction.m b/modules/gui/macosx/CoreInteraction.m index 58b46d1..2044c42 100644 --- a/modules/gui/macosx/CoreInteraction.m +++ b/modules/gui/macosx/CoreInteraction.m @@ -1,7 +1,7 @@ /***************************************************************************** * CoreInteraction.m: MacOS X interface module ***************************************************************************** - * Copyright (C) 2011 Felix Paul Kühne + * Copyright (C) 2011-2012 Felix Paul Kühne * $Id$ * * Authors: Felix Paul Kühne <fkuehne -at- videolan -dot- org> @@ -91,6 +91,11 @@ static VLCCoreInteraction *_o_sharedInstance = nil; var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_PLAY_PAUSE ); } +- (void)pause +{ + var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_PAUSE ); +} + - (void)stop { var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_STOP ); diff --git a/modules/gui/macosx/MainWindow.h b/modules/gui/macosx/MainWindow.h index 51b2f0f..44b2438 100644 --- a/modules/gui/macosx/MainWindow.h +++ b/modules/gui/macosx/MainWindow.h @@ -1,7 +1,7 @@ /***************************************************************************** * MainWindow.h: MacOS X interface module ***************************************************************************** - * Copyright (C) 2002-2011 VLC authors and VideoLAN + * Copyright (C) 2002-2012 VLC authors and VideoLAN * $Id$ * * Authors: Felix Paul Kühne <fkuehne -at- videolan -dot- org> diff --git a/modules/gui/macosx/MainWindow.m b/modules/gui/macosx/MainWindow.m index 8fdd2f0..5af29ea 100644 --- a/modules/gui/macosx/MainWindow.m +++ b/modules/gui/macosx/MainWindow.m @@ -1,7 +1,7 @@ /***************************************************************************** * MainWindow.m: MacOS X interface module ***************************************************************************** - * Copyright (C) 2002-2011 VLC authors and VideoLAN + * Copyright (C) 2002-2012 VLC authors and VideoLAN * $Id$ * * Authors: Felix Paul Kühne <fkuehne -at- videolan -dot- org> @@ -709,6 +709,15 @@ static VLCMainWindow *_o_sharedInstance = nil; return YES; } +- (BOOL)validateMenuItem:(NSMenuItem *)menuItem +{ + SEL s_menuAction = [menuItem action]; + if ((s_menuAction == @selector(performClose:)) || (s_menuAction == @selector(performMiniaturize:)) || (s_menuAction == @selector(performZoom:))) + return YES; + + return [super validateMenuItem:menuItem]; +} + - (BOOL)isMainWindow { return YES; @@ -723,6 +732,22 @@ static VLCMainWindow *_o_sharedInstance = nil; [super setTitle: title]; } +- (void)performClose:(id)sender +{ + if (b_dark_interface) + [self orderOut: sender]; + else + [super performClose: sender]; +} + +- (void)performMiniaturize:(id)sender +{ + if (b_dark_interface) + [self miniaturize: sender]; + else + [super performMiniaturize: sender]; +} + - (void)performZoom:(id)sender { if (b_dark_interface) @@ -1210,7 +1235,7 @@ static VLCMainWindow *_o_sharedInstance = nil; - (void)someWindowWillClose:(NSNotification *)notification { - if([notification object] == o_nonembedded_window) + if([notification object] == o_nonembedded_window || [notification object] == self) [[VLCCoreInteraction sharedInstance] stop]; } diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m index 389260b..0d24c16 100644 --- a/modules/gui/macosx/intf.m +++ b/modules/gui/macosx/intf.m @@ -783,7 +783,7 @@ static VLCMain *_o_sharedMainInstance = nil; { [NSApp activateIgnoringOtherApps:YES]; [o_remote stopListening: self]; - var_SetInteger( p_intf->p_libvlc, "key-action", ACTIONID_STOP ); + [[VLCCoreInteraction sharedInstance] stop]; } #pragma mark - @@ -853,16 +853,7 @@ static VLCMain *_o_sharedMainInstance = nil; /* Triggered when the computer goes to sleep */ - (void)computerWillSleep: (NSNotification *)notification { - input_thread_t * p_input; - - p_input = pl_CurrentInput( p_intf ); - if( p_input ) - { - int state = var_GetInteger( p_input, "state" ); - if( state == PLAYING_S ) - var_SetInteger( p_intf->p_libvlc, "key-action", ACTIONID_PLAY_PAUSE ); - vlc_object_release( p_input ); - } + [[VLCCoreInteraction sharedInstance] pause]; } #pragma mark - _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
