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 > >