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:
parent
09dada4003
commit
153d02e338
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user