#include "qapi/qapi-events-ui.h"
#include "qapi/error.h"
#include "qapi/qapi-commands-ui.h"
+#include "standard-headers/linux/input-event-codes.h"
#include "ui/console.h"
#include "ui/input.h"
#include "crypto/hash.h"
qemu_input_event_sync();
}
-static void press_key(VncState *vs, QKeyCode qcode)
+static void press_key(VncState *vs, unsigned int lnx)
{
- qkbd_state_key_event(vs->vd->kbd, qemu_input_map_qcode_to_linux[qcode],
- true);
-
- qkbd_state_key_event(vs->vd->kbd, qemu_input_map_qcode_to_linux[qcode],
- false);
+ qkbd_state_key_event(vs->vd->kbd, lnx, true);
+ qkbd_state_key_event(vs->vd->kbd, lnx, false);
}
static void vnc_led_state_change(VncState *vs)
static void do_key_event(VncState *vs, int down, int keycode, int sym)
{
- QKeyCode qcode = qemu_input_key_number_to_qcode(keycode);
+ unsigned int lnx = qemu_input_key_number_to_linux(keycode);
/* QEMU console switch */
- switch (qcode) {
- case Q_KEY_CODE_1 ... Q_KEY_CODE_9: /* '1' to '9' keys */
+ switch (lnx) {
+ case KEY_1 ... KEY_9: /* '1' to '9' keys */
if (down &&
qkbd_state_modifier_get(vs->vd->kbd, QKBD_MOD_CTRL) &&
qkbd_state_modifier_get(vs->vd->kbd, QKBD_MOD_ALT)) {
- QemuConsole *con = qemu_console_lookup_by_index(qcode - Q_KEY_CODE_1);
+ QemuConsole *con = qemu_console_lookup_by_index(lnx - KEY_1);
if (con) {
qemu_console_unregister_listener(&vs->vd->dcl);
qkbd_state_switch_console(vs->vd->kbd, con);
if (keysym_is_numlock(vs->vd->kbd_layout, sym & 0xFFFF)) {
if (!qkbd_state_modifier_get(vs->vd->kbd, QKBD_MOD_NUMLOCK)) {
trace_vnc_key_sync_numlock(true);
- press_key(vs, Q_KEY_CODE_NUM_LOCK);
+ press_key(vs, KEY_NUMLOCK);
}
} else {
if (qkbd_state_modifier_get(vs->vd->kbd, QKBD_MOD_NUMLOCK)) {
trace_vnc_key_sync_numlock(false);
- press_key(vs, Q_KEY_CODE_NUM_LOCK);
+ press_key(vs, KEY_NUMLOCK);
}
}
}
if (capslock) {
if (uppercase == shift) {
trace_vnc_key_sync_capslock(false);
- press_key(vs, Q_KEY_CODE_CAPS_LOCK);
+ press_key(vs, KEY_CAPSLOCK);
}
} else {
if (uppercase != shift) {
trace_vnc_key_sync_capslock(true);
- press_key(vs, Q_KEY_CODE_CAPS_LOCK);
+ press_key(vs, KEY_CAPSLOCK);
}
}
}
- qkbd_state_key_event(vs->vd->kbd, qemu_input_map_qcode_to_linux[qcode],
- down);
+ qkbd_state_key_event(vs->vd->kbd, lnx, down);
if (QEMU_IS_TEXT_CONSOLE(vs->vd->dcl.con)) {
QemuTextConsole *con = QEMU_TEXT_CONSOLE(vs->vd->dcl.con);
bool numlock = qkbd_state_modifier_get(vs->vd->kbd, QKBD_MOD_NUMLOCK);