Commit 1483adcf authored by Lei Li's avatar Lei Li Committed by Anthony Liguori
Browse files

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: default avatarGerd Hoffmann <kraxel@redhat.com>
Signed-off-by: default avatarLei Li <lilei@linux.vnet.ibm.com>
Reviewed-by: default avatarLaszlo Ersek <lersek@redhat.com>
Message-id: 1368606040-11950-1-git-send-email-lilei@linux.vnet.ibm.com
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parent 800ced8c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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);
    }
}