Spelling fix, by Stefan Weil.
[qemu] / cocoa.m
diff --git a/cocoa.m b/cocoa.m
index 895e96f..501fb70 100644 (file)
--- a/cocoa.m
+++ b/cocoa.m
@@ -164,7 +164,12 @@ static void cocoa_resize(DisplayState *ds, int w, int h)
     ds->depth = device_bpp;
     ds->width = w;
     ds->height = h;
-    
+#ifdef __LITTLE_ENDIAN__
+    ds->bgr = 1;
+#else
+    ds->bgr = 0;
+#endif
+
     current_ds = *ds;
 }
 
@@ -365,8 +370,8 @@ static void cocoa_refresh(DisplayState *ds)
     pool = [ [ NSAutoreleasePool alloc ] init ];
     distantPast = [ NSDate distantPast ];
     
-    if (is_active_console(vga_console)) 
-        vga_update_display();
+    vga_hw_update();
+
     do {
         event = [ NSApp nextEventMatchingMask:NSAnyEventMask untilDate:distantPast
                         inMode: NSDefaultRunLoopMode dequeue:YES ];
@@ -375,36 +380,39 @@ static void cocoa_refresh(DisplayState *ds)
                 case NSFlagsChanged:
                     {
                         int keycode = cocoa_keycode_to_qemu([event keyCode]);
-                        modifiers_state[keycode] = (modifiers_state[keycode] == 0) ? 1 : 0;
-                        
-                        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))
+
+                        if (keycode)
                         {
-                            modifiers_state[keycode] = 0;
-                            if (keycode & 0x80)
-                                kbd_put_keycode(0xe0);
-                            kbd_put_keycode(keycode | 0x80);
+                            if (keycode == 58 || keycode == 69) {
+                                /* emulate caps lock and num lock keydown and keyup */
+                                kbd_put_keycode(keycode);
+                                kbd_put_keycode(keycode | 0x80);
+                            } else if (is_graphic_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 */
                         if (([event modifierFlags] & NSControlKeyMask) && ([event modifierFlags] & NSAlternateKeyMask))
+                        {
                             [window setTitle: @"QEMU"];
                             [NSCursor unhide];
                             CGAssociateMouseAndMouseCursorPosition ( TRUE );
                             grab = 0;
+                        }
                     }
                     break;
-                    
+
                 case NSKeyDown:
                     {
                         int keycode = cocoa_keycode_to_qemu([event keyCode]);               
@@ -426,37 +434,50 @@ static void cocoa_refresh(DisplayState *ds)
                                 /* toggle Monitor */
                                 case 0x02 ... 0x0a: /* '1' to '9' keys */
                                     console_select(keycode - 0x02);
-                                    if (is_active_console(vga_console)) {
-                                        /* tell the vga console to redisplay itself */
-                                        vga_invalidate_display();
                                     break;
-                                }
                             }
                         } else {
                             /* handle standard key events */
-                            if (is_active_console(vga_console)) {
+                            if (is_graphic_console()) {
                                 if (keycode & 0x80) //check bit for e0 in front
                                     kbd_put_keycode(0xe0);
                                 kbd_put_keycode(keycode & 0x7f); //remove e0 bit in front
                             /* handle monitor key events */
                             } else {
+                                int keysym = 0;
+
                                 switch([event keyCode]) {
-                                    case 123:
-                                        kbd_put_keysym(QEMU_KEY_LEFT);
-                                        break;
-                                    case 124:
-                                        kbd_put_keysym(QEMU_KEY_RIGHT);
-                                        break;
-                                    case 125:
-                                        kbd_put_keysym(QEMU_KEY_DOWN);
-                                        break;
-                                    case 126:
-                                        kbd_put_keysym(QEMU_KEY_UP);
-                                        break;
-                                    default:
-                                        kbd_put_keysym([[event characters] characterAtIndex:0]);
-                                        break;
+                                case 115:
+                                    keysym = QEMU_KEY_HOME;
+                                    break;
+                                case 117:
+                                    keysym = QEMU_KEY_DELETE;
+                                    break;
+                                case 119:
+                                    keysym = QEMU_KEY_END;
+                                    break;
+                                case 123:
+                                    keysym = QEMU_KEY_LEFT;
+                                    break;
+                                case 124:
+                                    keysym = QEMU_KEY_RIGHT;
+                                    break;
+                                case 125:
+                                    keysym = QEMU_KEY_DOWN;
+                                    break;
+                                case 126:
+                                    keysym = QEMU_KEY_UP;
+                                    break;
+                                default:
+                                    {
+                                        NSString *ks = [event characters];
+
+                                        if ([ks length] > 0)
+                                            keysym = [ks characterAtIndex:0];
+                                    }
                                 }
+                                if (keysym)
+                                    kbd_put_keysym(keysym);
                             }
                         }
                     }
@@ -465,7 +486,7 @@ static void cocoa_refresh(DisplayState *ds)
                 case NSKeyUp:
                     {
                         int keycode = cocoa_keycode_to_qemu([event keyCode]);   
-                        if (is_active_console(vga_console)) {
+                        if (is_graphic_console()) {
                             if (keycode & 0x80)
                                 kbd_put_keycode(0xe0);
                             kbd_put_keycode(keycode | 0x80); //add 128 to signal release of key
@@ -868,10 +889,9 @@ static void setupWindowMenu(void)
     /* Finally give up our references to the objects */
     [windowMenu release];
     [windowMenuItem release];
 }
 
-static void CustomApplicationMain (argc, argv)
+static void CustomApplicationMain(void)
 {
     NSAutoreleasePool   *pool = [[NSAutoreleasePool alloc] init];
     QemuCocoaGUIController *gui_controller;
@@ -905,8 +925,8 @@ int main(int argc, char **argv)
 {
     gArgc = argc;
     gArgv = argv;
-    
-    CustomApplicationMain (argc, argv);
-    
+
+    CustomApplicationMain();
+
     return 0;
 }