]> git.sesse.net Git - vlc/commitdiff
vout: trigger zoom callback at startup (fixes #4027)
authorRémi Denis-Courmont <remi@remlab.net>
Wed, 1 May 2013 08:41:45 +0000 (11:41 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Wed, 1 May 2013 08:42:26 +0000 (11:42 +0300)
src/video_output/vout_intf.c

index 4fb32667ceeb6ed5d36eafff7e6699f7efde8ba7..9924a6b6314065d92fd91bd1fe032c55a475d441 100644 (file)
@@ -181,21 +181,23 @@ void vout_IntfInit( vout_thread_t *p_vout )
 
     text.psz_string = _("Zoom");
     var_Change( p_vout, "zoom", VLC_VAR_SETTEXT, &text, NULL );
-
-    var_Get( p_vout, "zoom", &old_val );
+    old_val.f_float = var_GetFloat( p_vout, "zoom" );
 
     for( size_t i = 0; i < ARRAY_SIZE(p_zoom_values); i++ )
     {
-        if( old_val.f_float == p_zoom_values[i].f_value )
-            var_Change( p_vout, "zoom", VLC_VAR_DELCHOICE, &old_val, NULL );
         val.f_float = p_zoom_values[i].f_value;
-        text.psz_string = _( p_zoom_values[i].psz_label );
+        text.psz_string = vlc_gettext( p_zoom_values[i].psz_label );
+        /* FIXME: This DELCHOICE hack corrupts the the "zoom" variable value
+         * for a short time window. Same for "crop" and "aspect-ratio". */
+        if( old_val.f_float == val.f_float )
+            var_Change( p_vout, "zoom", VLC_VAR_DELCHOICE, &old_val, NULL );
         var_Change( p_vout, "zoom", VLC_VAR_ADDCHOICE, &val, &text );
+        if( old_val.f_float == val.f_float )
+            var_Change( p_vout, "zoom", VLC_VAR_SETVALUE, &old_val, NULL );
     }
 
-    var_Set( p_vout, "zoom", old_val ); /* Is this really needed? */
-
     var_AddCallback( p_vout, "zoom", ZoomCallback, NULL );
+    var_TriggerCallback( p_vout, "zoom" );
 
     /* Crop offset vars */
     var_Create( p_vout, "crop-left", VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND );