[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] vnc: track LED state separately
From: |
Gerd Hoffmann |
Subject: |
Re: [Qemu-devel] [PATCH] vnc: track LED state separately |
Date: |
Thu, 15 Dec 2016 17:41:16 +0100 |
On Do, 2016-12-15 at 14:16 +0100, Pierre Ossman wrote:
> Piggy-backing on the modifier state array made it difficult to send
> out updates at the proper times. So keep track of the LED state in
> a separate variable.
>
> This also moves the handling up a layer in to the VNC Display object
> since the state is global, and also makes sure the state is readily
> available directly when a client connects.
Better, thanks.
> static void kbd_leds(void *opaque, int ledstate)
> {
> - VncState *vs = opaque;
> - int caps, num, scr;
> - bool has_changed = (ledstate != current_led_state(vs));
> + VncDisplay *vd = opaque;
> + VncState *client;
>
> trace_vnc_key_guest_leds((ledstate & QEMU_CAPS_LOCK_LED),
> (ledstate & QEMU_NUM_LOCK_LED),
> (ledstate & QEMU_SCROLL_LOCK_LED));
>
> - caps = ledstate & QEMU_CAPS_LOCK_LED ? 1 : 0;
> - num = ledstate & QEMU_NUM_LOCK_LED ? 1 : 0;
> - scr = ledstate & QEMU_SCROLL_LOCK_LED ? 1 : 0;
> + if (ledstate != vd->ledstate)
> + return;
Hmm? Shouldn't that be (ledstate == vd->ledstate)?
cheers,
Gerd