On 10/6/26 12:57, Marc-André Lureau wrote:
Signed-off-by: Marc-André Lureau <[email protected]>
---
  ui/spice-input.c | 10 +++++++---
  1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/ui/spice-input.c b/ui/spice-input.c
index f0bb915fd77..f5329b8aed9 100644
--- a/ui/spice-input.c
+++ b/ui/spice-input.c
@@ -33,6 +33,7 @@ typedef struct QemuSpiceKbd {
      int ledstate;
      bool emul0;
      size_t pauseseq;
+    Notifier led_notifier;
  } QemuSpiceKbd;
static void kbd_push_key(SpiceKbdInstance *sin, uint8_t frag);
@@ -86,9 +87,11 @@ static uint8_t kbd_get_leds(SpiceKbdInstance *sin)
      return kbd->ledstate;
  }
-static void kbd_leds(void *opaque, int ledstate)
+static void kbd_leds(Notifier *notifier, void *data)
  {
-    QemuSpiceKbd *kbd = opaque;
+    QemuSpiceKbd *kbd = container_of(notifier, QemuSpiceKbd, led_notifier);
+    /* spice has no associated console support */
+    int ledstate = qemu_input_get_led(NULL);

unsigned leds_mask? At least would help to differentiate from
QemuSpiceKbd::ledstate. Anyhow,

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>


      kbd->ledstate = 0;
      if (ledstate & QEMU_SCROLL_LOCK_LED) {
@@ -247,7 +250,8 @@ void qemu_spice_input_init(void)
      kbd = g_malloc0(sizeof(*kbd));
      kbd->sin.base.sif = &kbd_interface.base;
      qemu_spice.add_interface(&kbd->sin.base);
-    qemu_add_led_event_handler(kbd_leds, kbd);
+    kbd->led_notifier.notify = kbd_leds;
+    qemu_input_led_notifier_add(&kbd->led_notifier);


Reply via email to