Commit 153d02e3 authored by Amos Kong's avatar Amos Kong Committed by Luiz Capitulino
Browse files

monitor: fix the wrong order of releasing keys



(qemu) sendkey ctrl_r-scroll_lock-scroll_lock

Executing this command could not let Windows guest panic, it caused by
the wrong order of releasing keys. This problem was introduced by
commit e4c8f004.

The right release order should be starting from last item.

Signed-off-by: default avatarAmos Kong <akong@redhat.com>
Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
parent 09dada40
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -234,13 +234,11 @@ static void free_keycodes(void)

static void release_keys(void *opaque)
{
    int i;

    for (i = 0; i < keycodes_size; i++) {
        if (keycodes[i] & 0x80) {
    while (keycodes_size > 0) {
        if (keycodes[--keycodes_size] & 0x80) {
            kbd_put_keycode(0xe0);
        }
        kbd_put_keycode(keycodes[i]| 0x80);
        kbd_put_keycode(keycodes[keycodes_size] | 0x80);
    }

    free_keycodes();