Hi
This series cleans up the QEMU input subsystem by converting the last
legacy mouse API consumers and reworking how keyboard LED state (Caps
Lock, Num Lock, Scroll Lock) flows from emulated devices to UI backends.
The first patches are preparatory cleanups and fixes. Then legacy mouse
API consummers are converted. The second half introduces per-handler LED
state tracking in QemuInputHandlerState, convert the users, and drop the
old broadcast queue in the final patch.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
Changes in v2:
- warn on qemu_input_handler_register() unused result, suggested by
Philippe Mathieu-Daudé
- related extra fixes
- rebased, collect patch trailers
- Link to v1: https://lore.kernel.org/qemu-devel/20260609-ui-input-v1-0-42615deb818e@redhat.com
To: qemu-devel@nongnu.org
Cc: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Cc: "Dr. David Alan Gilbert" <dave@treblig.org>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <richard.henderson@linaro.org>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Jan Kiszka <jan.kiszka@web.de>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-arm@nongnu.org
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Cc: qemu-ppc@nongnu.org
Cc: Thomas Huth <th.huth+qemu@posteo.eu>
---
Marc-André Lureau (22):
hmp-commands.hx: fix button_state doc
ui/hmp: move index_from_key() where it is used
hw/i386/vmmouse: convert to QemuInputHandler API
hw/usb/dev-wacom: convert to modern QemuInputHandler API
ui: move LED and key utilities to input.c, delete input-legacy.c
hw/input: replace fprint with LOG_GUEST_ERROR
ui/input: remove double-notification on qemu_mouse_set()
ui/input: remove dead declaration
ui/input: add LED state tracking to QemuInputHandlerState
hw/input/ps2: keep QemuInputHandlerState in PS2State
hw/arm: keep QemuInputHandlerState in musicpal
hw/input: keep QemuInputHandlerState in adb-kbd
hw/input: keep QemuInputHandlerState in stellaris
hw/m68k: keep QemuInputHandlerState in next-kbd
ui/input: qemu_input_handler_register to warn for unused result
hw/input/ps2: use qemu_input_handler_set_led() for LED state
hw/input/hid: use qemu_input_handler_set_led() for LED state
hw/input/virtio-input-hid: use qemu_input_handler_set_led() for LED state
ui/vnc: switch LED handling to Notifier-based input API
ui/spice: switch LED handling to Notifier-based input API
ui/dbus: switch LED handling to Notifier-based input API
ui/input: remove old LED handler broadcast queue
include/hw/input/ps2.h | 2 +
include/hw/input/stellaris_gamepad.h | 2 +
include/ui/console.h | 30 -----
include/ui/input.h | 7 +-
ui/vnc.h | 2 +-
hw/arm/musicpal.c | 13 +-
hw/i386/vmmouse.c | 115 ++++++++++++-----
hw/input/adb-kbd.c | 17 ++-
hw/input/hid.c | 3 +-
hw/input/ps2.c | 28 ++++-
hw/input/stellaris_gamepad.c | 12 +-
hw/input/virtio-input-hid.c | 15 ++-
hw/m68k/next-kbd.c | 11 +-
hw/usb/dev-wacom.c | 155 ++++++++++++++---------
tools/qemu-vnc/input.c | 49 +++-----
ui/dbus-console.c | 11 +-
ui/input-legacy.c | 236 -----------------------------------
ui/input.c | 76 ++++++++++-
ui/spice-input.c | 10 +-
ui/ui-hmp-cmds.c | 22 +++-
ui/vnc.c | 11 +-
hmp-commands.hx | 4 +-
hw/i386/trace-events | 2 +-
ui/meson.build | 1 -
24 files changed, 404 insertions(+), 430 deletions(-)
---
base-commit: cc329c491768b2d91eb0b0984f3baa0bf805776d
change-id: 20260609-ui-input-f4b63f6d6af3
Best regards,
--
Marc-André Lureau <marcandre.lureau@redhat.com>