Define a QEMU special key constant for the tab key and add an entry for
it in the qcode_to_keysym table. This allows tab completion to work again
in the SDL monitor virtual console, which has been broken ever since the
migration from SDL1 to SDL2.
Signed-off-by: Cal Peake <cp@absolutedigital.net>
---
include/ui/console.h | 1 +
ui/console.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/include/ui/console.h b/include/ui/console.h
index c0520c694c..e400ee9fa7 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -70,6 +70,7 @@ void hmp_mouse_set(Monitor *mon, const QDict *qdict);
/* keysym is a unicode code except for special keys (see QEMU_KEY_xxx
constants) */
#define QEMU_KEY_ESC1(c) ((c) | 0xe100)
+#define QEMU_KEY_TAB 0x0009
#define QEMU_KEY_BACKSPACE 0x007f
#define QEMU_KEY_UP QEMU_KEY_ESC1('A')
#define QEMU_KEY_DOWN QEMU_KEY_ESC1('B')
diff --git a/ui/console.c b/ui/console.c
index e139f7115e..addaafba28 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -1368,6 +1368,7 @@ static const int qcode_to_keysym[Q_KEY_CODE__MAX] = {
[Q_KEY_CODE_PGUP] = QEMU_KEY_PAGEUP,
[Q_KEY_CODE_PGDN] = QEMU_KEY_PAGEDOWN,
[Q_KEY_CODE_DELETE] = QEMU_KEY_DELETE,
+ [Q_KEY_CODE_TAB] = QEMU_KEY_TAB,
[Q_KEY_CODE_BACKSPACE] = QEMU_KEY_BACKSPACE,
};
--
2.35.3
On Thu, Aug 11, 2022 at 06:01:38PM -0400, Cal Peake wrote: > Define a QEMU special key constant for the tab key and add an entry for > it in the qcode_to_keysym table. This allows tab completion to work again > in the SDL monitor virtual console, which has been broken ever since the > migration from SDL1 to SDL2. > > Signed-off-by: Cal Peake <cp@absolutedigital.net> Patch added to queue. thanks, Gerd
Hi Gerd,
Can you take a look at this and let me know what you think?
Thanks,
-Cal
On Thu, 11 Aug 2022, Cal Peake wrote:
> Define a QEMU special key constant for the tab key and add an entry for
> it in the qcode_to_keysym table. This allows tab completion to work again
> in the SDL monitor virtual console, which has been broken ever since the
> migration from SDL1 to SDL2.
>
> Signed-off-by: Cal Peake <cp@absolutedigital.net>
> ---
> include/ui/console.h | 1 +
> ui/console.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/include/ui/console.h b/include/ui/console.h
> index c0520c694c..e400ee9fa7 100644
> --- a/include/ui/console.h
> +++ b/include/ui/console.h
> @@ -70,6 +70,7 @@ void hmp_mouse_set(Monitor *mon, const QDict *qdict);
> /* keysym is a unicode code except for special keys (see QEMU_KEY_xxx
> constants) */
> #define QEMU_KEY_ESC1(c) ((c) | 0xe100)
> +#define QEMU_KEY_TAB 0x0009
> #define QEMU_KEY_BACKSPACE 0x007f
> #define QEMU_KEY_UP QEMU_KEY_ESC1('A')
> #define QEMU_KEY_DOWN QEMU_KEY_ESC1('B')
> diff --git a/ui/console.c b/ui/console.c
> index e139f7115e..addaafba28 100644
> --- a/ui/console.c
> +++ b/ui/console.c
> @@ -1368,6 +1368,7 @@ static const int qcode_to_keysym[Q_KEY_CODE__MAX] = {
> [Q_KEY_CODE_PGUP] = QEMU_KEY_PAGEUP,
> [Q_KEY_CODE_PGDN] = QEMU_KEY_PAGEDOWN,
> [Q_KEY_CODE_DELETE] = QEMU_KEY_DELETE,
> + [Q_KEY_CODE_TAB] = QEMU_KEY_TAB,
> [Q_KEY_CODE_BACKSPACE] = QEMU_KEY_BACKSPACE,
> };
>
> --
> 2.35.3
>
>
© 2016 - 2026 Red Hat, Inc.