Hi

On Thu, Jun 15, 2023 at 12:36 PM Zhang Huasen <huasenzh...@foxmail.com>
wrote:

> If the monitor or the serial port use STDIO as backend on Windows 11 host,
> e.g. -nographic options is used, the monitor or the guest Linux do not
> response to arrow keys.
>
> When Windows creates a console, ENABLE_VIRTUAL_PROCESS_INPUT is disabled
> by default. Arrow keys cannot be retrieved by ReadFile or ReadConsoleInput
> functions.
>
> Add ENABLE_VIRTUAL_PROCESS_INPUT to the flag which is passed to
> SetConsoleMode,
> when opening stdio console.
>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1674
>
> Signed-off-by: Zhang Huasen <huasenzh...@foxmail.com>
> ---
>  chardev/char-win-stdio.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/chardev/char-win-stdio.c b/chardev/char-win-stdio.c
> index eb830eabd9..1a18999e78 100644
> --- a/chardev/char-win-stdio.c
> +++ b/chardev/char-win-stdio.c
> @@ -190,7 +190,7 @@ static void qemu_chr_open_stdio(Chardev *chr,
>          }
>      }
>
> -    dwMode |= ENABLE_LINE_INPUT;
> +    dwMode |= ENABLE_LINE_INPUT | ENABLE_VIRTUAL_TERMINAL_INPUT;
>

I think we should set it only when is_console (although that may not make a
difference otherwise)

thanks


>      if (is_console) {
>          /* set the terminal in raw mode */
> --
> 2.41.0.windows.1
>
>

Reply via email to