diff --git a/lib/openmsx/share/scripts/headless.tcl b/lib/openmsx/share/scripts/headless.tcl index f8ed69e..cccadaa 100644 --- a/lib/openmsx/share/scripts/headless.tcl +++ b/lib/openmsx/share/scripts/headless.tcl @@ -28,7 +28,8 @@ # Sets CPU speed to relative from normal but only when throttle is on. # -set boot_env_renderer_type 0 +set headless_renderer_type 0 +set headless_renderer_done 0 proc headless_exit {} { after time 1 "exit 0" @@ -38,19 +39,24 @@ proc headless_exit {} { proc headless_show_gui {} { global renderer global throttle - global boot_env_renderer_type - if {$boot_env_renderer_type != 0} { - after time 1 "set renderer $boot_env_renderer_type" + global headless_renderer_type + global headless_renderer_done + if {$headless_renderer_done != 0} { + return "Requested GUI already showing" + } + if {$headless_renderer_type != 0} { + after time 1 "set renderer $headless_renderer_type" set throttle on + set headless_renderer_done 1 } else { puts stderr "error: Requested show gui but env.RENDERER is missing." exit 1 } - return "Requested GUI with $boot_env_renderer_type" + return "Requested GUI with $headless_renderer_type" } if {[info exists ::env(RENDERER)] && ([string trim $::env(RENDERER)] != "")} { - set boot_env_renderer_type [string trim $::env(RENDERER)] + set headless_renderer_type [string trim $::env(RENDERER)] } if {[info exists ::env(HEADLESS)] && ([string trim $::env(HEADLESS)] != "on")} {