Loading include/ui/console.h +1 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ void hmp_mouse_set(Monitor *mon, const QDict *qdict); #define QEMU_KEY_CTRL_PAGEDOWN 0xe407 void kbd_put_keysym_console(QemuConsole *s, int keysym); bool kbd_put_qcode_console(QemuConsole *s, int qcode); bool kbd_put_qcode_console(QemuConsole *s, int qcode, bool ctrl); void kbd_put_string_console(QemuConsole *s, const char *str, int len); void kbd_put_keysym(int keysym); Loading ui/console.c +13 −2 Original line number Diff line number Diff line Loading @@ -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; } Loading ui/gtk.c +2 −2 Original line number Diff line number Diff line Loading @@ -1197,12 +1197,12 @@ static gboolean gd_text_key_down(GtkWidget *widget, QemuConsole *con = vc->gfx.dcl.con; if (key->keyval == GDK_KEY_Delete) { kbd_put_qcode_console(con, Q_KEY_CODE_DELETE); kbd_put_qcode_console(con, Q_KEY_CODE_DELETE, false); } else if (key->length) { kbd_put_string_console(con, key->string, key->length); } else { int qcode = gd_map_keycode(key->hardware_keycode); kbd_put_qcode_console(con, qcode); kbd_put_qcode_console(con, qcode, false); } return TRUE; } Loading ui/sdl2-input.c +1 −1 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ void sdl2_process_key(struct sdl2_console *scon, kbd_put_keysym_console(con, QEMU_KEY_BACKSPACE); break; default: kbd_put_qcode_console(con, qcode); kbd_put_qcode_console(con, qcode, false); break; } } Loading Loading
include/ui/console.h +1 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ void hmp_mouse_set(Monitor *mon, const QDict *qdict); #define QEMU_KEY_CTRL_PAGEDOWN 0xe407 void kbd_put_keysym_console(QemuConsole *s, int keysym); bool kbd_put_qcode_console(QemuConsole *s, int qcode); bool kbd_put_qcode_console(QemuConsole *s, int qcode, bool ctrl); void kbd_put_string_console(QemuConsole *s, const char *str, int len); void kbd_put_keysym(int keysym); Loading
ui/console.c +13 −2 Original line number Diff line number Diff line Loading @@ -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; } Loading
ui/gtk.c +2 −2 Original line number Diff line number Diff line Loading @@ -1197,12 +1197,12 @@ static gboolean gd_text_key_down(GtkWidget *widget, QemuConsole *con = vc->gfx.dcl.con; if (key->keyval == GDK_KEY_Delete) { kbd_put_qcode_console(con, Q_KEY_CODE_DELETE); kbd_put_qcode_console(con, Q_KEY_CODE_DELETE, false); } else if (key->length) { kbd_put_string_console(con, key->string, key->length); } else { int qcode = gd_map_keycode(key->hardware_keycode); kbd_put_qcode_console(con, qcode); kbd_put_qcode_console(con, qcode, false); } return TRUE; } Loading
ui/sdl2-input.c +1 −1 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ void sdl2_process_key(struct sdl2_console *scon, kbd_put_keysym_console(con, QEMU_KEY_BACKSPACE); break; default: kbd_put_qcode_console(con, qcode); kbd_put_qcode_console(con, qcode, false); break; } } Loading