]> git.sesse.net Git - vlc/commitdiff
macosx: Save current fullscreen state.
authorPierre d'Herbemont <pdherbemont@videolan.org>
Sat, 12 Jul 2008 14:14:07 +0000 (16:14 +0200)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Sat, 12 Jul 2008 15:36:28 +0000 (17:36 +0200)
modules/gui/macosx/controls.m
modules/gui/macosx/embeddedwindow.m
modules/gui/macosx/vout.m

index c68b57517b548bc855b5be275b8731e3f45393ad..75536d4673548f23fdbb47ae53ceba91ba75ee04 100644 (file)
             }
             else
             {
+                playlist_t * p_playlist = pl_Yield( VLCIntf );
+                /* Fullscreen state for next time will be saved here too */
                 [o_vout_view toggleFullscreen];
             }
         }
             var_Set( p_playlist, "fullscreen", (vlc_value_t)!val.b_bool );
         }
 
-        vlc_object_release( p_playlist );
+        pl_Release( VLCIntf );
     }
 
 }
                     break;
                 }
             }
+
             vlc_object_release( (vlc_object_t *)p_vout );
         }
-        else if( [[o_mi title] isEqualToString: _NS("Fullscreen")] )
+        if( [[o_mi title] isEqualToString: _NS("Fullscreen")] )
         {
             var_Get( p_playlist, "fullscreen", &val );
             [o_mi setState: val.b_bool];
index 4ce60e655c601168d7573930f2b10048f250d38b..d16a16b2da8568823905d1a43d777a4cc29b9a84 100644 (file)
 - (void)orderOut: (id)sender
 {
     [super orderOut: sender];
+
     /* Make sure we leave fullscreen */
     [self leaveFullscreenAndFadeOut: YES];
 }
index 8c7068015863f457ea859687c5b25a4b63224b67..bdda538bf230ee4b1903bda306fd3cafeae2b305 100644 (file)
@@ -766,24 +766,18 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
 
 - (void)enterFullscreen
 {
-    if( var_GetBool( p_real_vout, "video-on-top" ) )
-    {
-        [o_window setLevel: NSNormalWindowLevel];
-    }
-
-    [[o_view class] performSelectorOnMainThread:@selector(resetVout:) withObject:[NSValue valueWithPointer:p_vout] waitUntilDone:YES];
-    [[[[VLCMain sharedInstance] getControls] getFSPanel] setActive: nil];
+    /* Save the settings for next playing item */
+    playlist_t * p_playlist = pl_Yield( p_real_vout );
+    var_SetBool( p_playlist, "fullscreen", true );
+    pl_Release( p_real_vout );
 }
 
 - (void)leaveFullscreen
 {
-    if( var_GetBool( p_real_vout, "video-on-top" ) )
-    {
-        [o_window setLevel: NSStatusWindowLevel];
-    }
-
-    [[o_view class] performSelectorOnMainThread:@selector(resetVout:) withObject:[NSValue valueWithPointer:p_vout] waitUntilDone:YES];
-    [[[[VLCMain sharedInstance] getControls] getFSPanel] setNonActive: nil];
+    /* Save the settings for next playing item */
+    playlist_t * p_playlist = pl_Yield( p_real_vout );
+    var_SetBool( p_playlist, "fullscreen", false );
+    pl_Release( p_real_vout );
 }
 
 @end
@@ -871,6 +865,33 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
     }
 }
 
+
+- (void)enterFullscreen
+{
+    [super enterFullscreen];
+
+    if( var_GetBool( p_real_vout, "video-on-top" ) )
+    {
+        [o_window setLevel: NSNormalWindowLevel];
+    }
+
+    [[o_view class] performSelectorOnMainThread:@selector(resetVout:) withObject:[NSValue valueWithPointer:p_vout] waitUntilDone:YES];
+    [[[[VLCMain sharedInstance] getControls] getFSPanel] setActive: nil];
+}
+
+- (void)leaveFullscreen
+{
+    [super leaveFullscreen];
+
+    if( var_GetBool( p_real_vout, "video-on-top" ) )
+    {
+        [o_window setLevel: NSStatusWindowLevel];
+    }
+
+    [[o_view class] performSelectorOnMainThread:@selector(resetVout:) withObject:[NSValue valueWithPointer:p_vout] waitUntilDone:YES];
+    [[[[VLCMain sharedInstance] getControls] getFSPanel] setNonActive: nil];
+}
+
 @end
 
 /*****************************************************************************
@@ -974,12 +995,18 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
 
 - (void)enterFullscreen
 {
+    /* Save settings */
+    [super enterFullscreen];
+
     /* We are in a VLCEmbeddedWindow */
     [o_embeddedwindow performSelectorOnMainThread: @selector(enterFullscreen) withObject: NULL waitUntilDone: YES];
 }
 
 - (void)leaveFullscreen
 {
+    /* Save settings */
+    [super leaveFullscreen];
+
     /* We are in a VLCEmbeddedWindow */
     [o_embeddedwindow performSelectorOnMainThread: @selector(leaveFullscreen) withObject: NULL waitUntilDone: YES];
 }
@@ -1200,5 +1227,4 @@ int DeviceCallback( vlc_object_t *p_this, const char *psz_variable,
     return NO;
 }
 
-
 @end