ui: add ctrl modifier support to kbd_put_qcode_console()

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180321135041.15768-2-kraxel@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Gerd Hoffmann 2018-03-21 14:50:36 +01:00
parent 991f366b2f
commit da024b1ed2
4 changed files with 17 additions and 6 deletions

View file

@ -1191,11 +1191,22 @@ static const int qcode_to_keysym[Q_KEY_CODE__MAX] = {
[Q_KEY_CODE_BACKSPACE] = QEMU_KEY_BACKSPACE,
};
bool kbd_put_qcode_console(QemuConsole *s, int qcode)
static const int ctrl_qcode_to_keysym[Q_KEY_CODE__MAX] = {
[Q_KEY_CODE_UP] = QEMU_KEY_CTRL_UP,
[Q_KEY_CODE_DOWN] = QEMU_KEY_CTRL_DOWN,
[Q_KEY_CODE_RIGHT] = QEMU_KEY_CTRL_RIGHT,
[Q_KEY_CODE_LEFT] = QEMU_KEY_CTRL_LEFT,
[Q_KEY_CODE_HOME] = QEMU_KEY_CTRL_HOME,
[Q_KEY_CODE_END] = QEMU_KEY_CTRL_END,
[Q_KEY_CODE_PGUP] = QEMU_KEY_CTRL_PAGEUP,
[Q_KEY_CODE_PGDN] = QEMU_KEY_CTRL_PAGEDOWN,
};
bool kbd_put_qcode_console(QemuConsole *s, int qcode, bool ctrl)
{
int keysym;
keysym = qcode_to_keysym[qcode];
keysym = ctrl ? ctrl_qcode_to_keysym[qcode] : qcode_to_keysym[qcode];
if (keysym == 0) {
return false;
}