X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fmacosx%2Fintf.m;h=d062ee45f534c2387132e3035b8a910031378562;hb=4b46a114feec5618ff321fd0f45deac0861fb6a8;hp=dc74bf368ac5c68f4409c2cfc65d7fc7bfc4e09b;hpb=cdb11969bf1ae46d0c25f9d104ee27ac835fd287;p=vlc diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m index dc74bf368a..d062ee45f5 100644 --- a/modules/gui/macosx/intf.m +++ b/modules/gui/macosx/intf.m @@ -2,7 +2,7 @@ * intf.m: MacOS X interface plugin ***************************************************************************** * Copyright (C) 2002-2003 VideoLAN - * $Id: intf.m,v 1.52 2003/02/09 01:50:35 massiot Exp $ + * $Id: intf.m,v 1.57 2003/02/13 14:16:41 hartman Exp $ * * Authors: Jon Lech Johansen * Christophe Massiot @@ -292,7 +292,7 @@ int ExecuteOnMainThread( id target, SEL sel, void * p_arg ) /* main menu */ [o_mi_about setTitle: _NS("About VLC media player")]; - [o_mi_prefs setTitle: _NS("Preferences")]; + [o_mi_prefs setTitle: _NS("Preferences...")]; [o_mi_hide setTitle: _NS("Hide VLC")]; [o_mi_hide_others setTitle: _NS("Hide Others")]; [o_mi_show_all setTitle: _NS("Show All")]; @@ -355,7 +355,7 @@ int ExecuteOnMainThread( id target, SEL sel, void * p_arg ) [o_mu_help setTitle: _NS("Help")]; [o_mi_readme setTitle: _NS("ReadMe...")]; - [o_mi_reportabug setTitle: _NS("Report A Bug")]; + [o_mi_reportabug setTitle: _NS("Report a Bug")]; [o_mi_website setTitle: _NS("VideoLAN Website")]; [o_mi_license setTitle: _NS("License")]; @@ -426,10 +426,19 @@ int ExecuteOnMainThread( id target, SEL sel, void * p_arg ) if( p_playlist != NULL ) { - vlc_mutex_lock( &p_playlist->object_lock ); + vlc_value_t val; + if( var_Get( (vlc_object_t *)p_playlist, "intf-change", &val ) + >= 0 && val.b_bool ) + { + p_intf->p_sys->b_playlist_update = 1; + p_intf->p_sys->b_intf_update = VLC_TRUE; + } + + vlc_mutex_lock( &p_playlist->object_lock ); + [self manage: p_playlist]; - + vlc_mutex_unlock( &p_playlist->object_lock ); vlc_object_release( p_playlist ); } @@ -540,9 +549,11 @@ int ExecuteOnMainThread( id target, SEL sel, void * p_arg ) p_intf->p_sys->b_chapter_update = 1; p_intf->p_sys->b_audio_update = 1; p_intf->p_sys->b_spu_update = 1; + p_intf->p_sys->b_current_title_update = 1; p_intf->p_sys->i_part = 0; p_playlist->p_input->stream.b_changed = 0; + msg_Dbg( p_intf, "stream has changed, refreshing interface" ); } else @@ -591,6 +602,16 @@ int ExecuteOnMainThread( id target, SEL sel, void * p_arg ) } vlc_mutex_lock( &p_playlist->object_lock ); + + if ( p_intf->p_sys->b_playlist_update ) + { + vlc_value_t val; + val.b_bool = 0; + + var_Set( (vlc_object_t *)p_playlist, "intf-change", val ); + [o_playlist playlistUpdated]; + p_intf->p_sys->b_playlist_update = VLC_FALSE; + } #define p_input p_playlist->p_input @@ -598,6 +619,27 @@ int ExecuteOnMainThread( id target, SEL sel, void * p_arg ) { vlc_mutex_lock( &p_input->stream.stream_lock ); } + + if( p_intf->p_sys->b_current_title_update ) + { + id o_awindow = [NSApp keyWindow]; + NSArray *o_windows = [NSApp windows]; + NSEnumerator *o_enumerator = [o_windows objectEnumerator]; + + while ((o_awindow = [o_enumerator nextObject])) + { + if( [[o_awindow className] isEqualToString: @"VLCWindow"] ) + { + vlc_mutex_unlock( &p_playlist->object_lock ); + [o_awindow updateTitle]; + vlc_mutex_lock( &p_playlist->object_lock ); + } + } + vlc_mutex_unlock( &p_playlist->object_lock ); + [o_playlist updateState]; + vlc_mutex_lock( &p_playlist->object_lock ); + p_intf->p_sys->b_current_title_update = FALSE; + } if( p_intf->p_sys->b_intf_update ) { @@ -1406,7 +1448,7 @@ int ExecuteOnMainThread( id target, SEL sel, void * p_arg ) - (IBAction)openCrashLog:(id)sender { - NSString * o_path = [@"~/Library/Logs/CrashReporter/vlc.crash.log" + NSString * o_path = [@"~/Library/Logs/CrashReporter/VLC.crash.log" stringByExpandingTildeInPath];