From: Lei Li Date: Wed, 15 May 2013 08:20:40 +0000 (+0800) Subject: vnc: Make ledstate comparison before modifiers updated X-Git-Tag: v1.5.0-rc2~9 X-Git-Url: https://git.proxmox.com/?p=qemu.git;a=commitdiff_plain;h=1483adcf6ac978656718d4383d909c96dce395a6 vnc: Make ledstate comparison before modifiers updated The ledstate should be compared before modifiers updated, otherwise the ledstate would be the same as current_led_state. Reported-by: Gerd Hoffmann Signed-off-by: Lei Li Reviewed-by: Laszlo Ersek Message-id: 1368606040-11950-1-git-send-email-lilei@linux.vnet.ibm.com Signed-off-by: Anthony Liguori --- diff --git a/ui/vnc.c b/ui/vnc.c index 89108de22..dfc74591f 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -1601,6 +1601,7 @@ static void kbd_leds(void *opaque, int ledstate) { VncState *vs = opaque; int caps, num, scr; + bool has_changed = (ledstate != current_led_state(vs)); caps = ledstate & QEMU_CAPS_LOCK_LED ? 1 : 0; num = ledstate & QEMU_NUM_LOCK_LED ? 1 : 0; @@ -1617,7 +1618,7 @@ static void kbd_leds(void *opaque, int ledstate) } /* Sending the current led state message to the client */ - if (ledstate != current_led_state(vs)) { + if (has_changed) { vnc_led_state_change(vs); } }