mirror of https://github.com/xqemu/xqemu.git
(Joachim Henke)
- suppress unwanted kernel logs - avoids passing modifier keys to the guest OS when typing in the Monitor - fixes the bug that the mouse cursor grab is released with _any_ modifier key (should be only ctrl+alt) - removes some code redundancies git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1721 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
2efc32658e
commit
7c206a754a
43
cocoa.m
43
cocoa.m
|
@ -375,36 +375,39 @@ static void cocoa_refresh(DisplayState *ds)
|
||||||
case NSFlagsChanged:
|
case NSFlagsChanged:
|
||||||
{
|
{
|
||||||
int keycode = cocoa_keycode_to_qemu([event keyCode]);
|
int keycode = cocoa_keycode_to_qemu([event keyCode]);
|
||||||
modifiers_state[keycode] = (modifiers_state[keycode] == 0) ? 1 : 0;
|
|
||||||
|
if (keycode)
|
||||||
if ( modifiers_state[keycode] ) { /* Keydown */
|
|
||||||
if (keycode & 0x80)
|
|
||||||
kbd_put_keycode(0xe0);
|
|
||||||
kbd_put_keycode(keycode & 0x7f);
|
|
||||||
} else { /* Keyup */
|
|
||||||
if (keycode & 0x80)
|
|
||||||
kbd_put_keycode(0xe0);
|
|
||||||
kbd_put_keycode(keycode | 0x80);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* emulate caps lock and num lock keyup */
|
|
||||||
if ((keycode == 58) || (keycode == 69))
|
|
||||||
{
|
{
|
||||||
modifiers_state[keycode] = 0;
|
if (keycode == 58 || keycode == 69) {
|
||||||
if (keycode & 0x80)
|
/* emulate caps lock and num lock keydown and keyup */
|
||||||
kbd_put_keycode(0xe0);
|
kbd_put_keycode(keycode);
|
||||||
kbd_put_keycode(keycode | 0x80);
|
kbd_put_keycode(keycode | 0x80);
|
||||||
|
} else if (is_active_console(vga_console)) {
|
||||||
|
if (keycode & 0x80)
|
||||||
|
kbd_put_keycode(0xe0);
|
||||||
|
if (modifiers_state[keycode] == 0) {
|
||||||
|
/* keydown */
|
||||||
|
kbd_put_keycode(keycode & 0x7f);
|
||||||
|
modifiers_state[keycode] = 1;
|
||||||
|
} else {
|
||||||
|
/* keyup */
|
||||||
|
kbd_put_keycode(keycode | 0x80);
|
||||||
|
modifiers_state[keycode] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* release Mouse grab when pressing ctrl+alt */
|
/* release Mouse grab when pressing ctrl+alt */
|
||||||
if (([event modifierFlags] & NSControlKeyMask) && ([event modifierFlags] & NSAlternateKeyMask))
|
if (([event modifierFlags] & NSControlKeyMask) && ([event modifierFlags] & NSAlternateKeyMask))
|
||||||
|
{
|
||||||
[window setTitle: @"QEMU"];
|
[window setTitle: @"QEMU"];
|
||||||
[NSCursor unhide];
|
[NSCursor unhide];
|
||||||
CGAssociateMouseAndMouseCursorPosition ( TRUE );
|
CGAssociateMouseAndMouseCursorPosition ( TRUE );
|
||||||
grab = 0;
|
grab = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NSKeyDown:
|
case NSKeyDown:
|
||||||
{
|
{
|
||||||
int keycode = cocoa_keycode_to_qemu([event keyCode]);
|
int keycode = cocoa_keycode_to_qemu([event keyCode]);
|
||||||
|
|
Loading…
Reference in New Issue