mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
hw/char/escc: Use Linux key codes
QemuInputEvent now stores Linux key codes for key events. Use those codes directly instead of translating between internal key code representations. Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-ID: <20260520-input-v3-9-7c9e4c7abe34@rsg.ci.i.u-tokyo.ac.jp>
This commit is contained in:
committed by
Marc-André Lureau
parent
05a7da6d1c
commit
44f9eeb2de
@@ -30,6 +30,7 @@
|
||||
#include "migration/vmstate.h"
|
||||
#include "qemu/module.h"
|
||||
#include "hw/char/escc.h"
|
||||
#include "standard-headers/linux/input-event-codes.h"
|
||||
#include "ui/console.h"
|
||||
|
||||
#include "qemu/cutils.h"
|
||||
@@ -804,7 +805,7 @@ static void sunkbd_handle_event(DeviceState *dev, QemuConsole *src,
|
||||
trace_escc_sunkbd_event_in(qcode, QKeyCode_str(qcode),
|
||||
evt->key.down);
|
||||
|
||||
if (qcode == Q_KEY_CODE_CAPS_LOCK) {
|
||||
if (evt->key.key == KEY_CAPSLOCK) {
|
||||
if (evt->key.down) {
|
||||
s->caps_lock_mode ^= 1;
|
||||
if (s->caps_lock_mode == 2) {
|
||||
@@ -818,7 +819,7 @@ static void sunkbd_handle_event(DeviceState *dev, QemuConsole *src,
|
||||
}
|
||||
}
|
||||
|
||||
if (qcode == Q_KEY_CODE_NUM_LOCK) {
|
||||
if (evt->key.key == KEY_NUMLOCK) {
|
||||
if (evt->key.down) {
|
||||
s->num_lock_mode ^= 1;
|
||||
if (s->num_lock_mode == 2) {
|
||||
@@ -832,11 +833,11 @@ static void sunkbd_handle_event(DeviceState *dev, QemuConsole *src,
|
||||
}
|
||||
}
|
||||
|
||||
if (qcode >= qemu_input_map_qcode_to_sun_len) {
|
||||
if (evt->key.key >= qemu_input_map_linux_to_sun_len) {
|
||||
return;
|
||||
}
|
||||
|
||||
keycode = qemu_input_map_qcode_to_sun[qcode];
|
||||
keycode = qemu_input_map_linux_to_sun[evt->key.key];
|
||||
if (!evt->key.down) {
|
||||
keycode |= 0x80;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user