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