summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mplayer.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/mplayer.c b/mplayer.c
index 139c5990e2..eaae9343b6 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -162,6 +162,7 @@ static int output_quality=0;
int use_gui=0;
int osd_level=1;
+int osd_level_saved=-1;
int osd_visible=100;
// seek:
@@ -1288,7 +1289,16 @@ current_module="init_vo";
main:
current_module="main";
-if(!sh_video) osd_level = 0;
+// If there is no video OSD has to be disabled.
+// In case of playing a playtree we have to restore the
+// old OSD level after playing one or more audio-only files.
+if(!sh_video && osd_level > 0) { // save OSD level only once
+ osd_level_saved = osd_level;
+ osd_level = 0;
+} else if (osd_level_saved > -1) { // if there is a saved OSD level, restore it
+ osd_level = osd_level_saved;
+ osd_level_saved = -1;
+}
fflush(stdout);