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 e4c8f004c5.

The right release order should be starting from last item.

Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
Amos Kong 2013-04-16 13:47:32 +08:00 committed by Luiz Capitulino
parent 09dada4003
commit 153d02e338

View File

@ -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();