[SeaBIOS] [PATCH v3 1/2] boot.c: delay exiting boot if menu key is ESC

Matt DeVillier matt.devillier at gmail.com
Thu Mar 12 16:58:28 CET 2015


On 3/12/2015 9:49 AM, Paolo Bonzini wrote:
> If the menu key is ESC, do not restart boot unless
> 1.5 seconds have passed.  Otherwise users (trained by years of
> repeatedly hitting keys to enter the BIOS) will end up hitting ESC
> multiple times and immediately booting the primary boot device.
>
> Suggested-by: Matt DeVillier <matt.devillier at gmail.com>
> Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
> ---
>  src/boot.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/src/boot.c b/src/boot.c
> index f23e9e1..3aab8d4 100644
> --- a/src/boot.c
> +++ b/src/boot.c
> @@ -486,9 +486,15 @@ interactive_bootmenu(void)
>                 , strtcpy(desc, pos->description, ARRAY_SIZE(desc)));
>      }
>  
> -    // Get key press
> +    // Get key press.  If the menu key is ESC, do not restart boot unless
> +    // 1.5 seconds have passed.  Otherwise users (trained by years of
> +    // repeatedly hitting keys to enter the BIOS) will end up hitting ESC
> +    // multiple times and immediately booting the primary boot device.
> +    int esc_accepted_time = irqtimer_calc(menukey == 1 ? 1500 : 0);
>      for (;;) {
>          scan_code = get_keystroke(1000);
> +        if (scan_code == 1 && !irqtimer_check(esc_accepted_time))
> +            continue;
>          if (scan_code >= 1 && scan_code <= maxmenu+1)
>              break;
>      }
Is there are reason to keep the use of ESC to exit the boot menu at all?  Is that a feature that users use/expect?  1.5s may sound like a lot of time, but with many using a TV as the display these days, it can take longer than that to even init/sync the screen. 



More information about the SeaBIOS mailing list