qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches
@ 2013-12-08 22:59 Peter Maydell
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 1/5] ui/cocoa: Pass command key through to guest when VM has mousegrab Peter Maydell
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber, patches

This patchset is a collection of minor Cocoa UI patches:
 * the 'pass command key through when mousegrabbed' patch I sent
   earlier (included here for convenience since the others in
   the series would otherwise trivially conflict)
 * typo fixes
 * support for loading *.qcow2 via the "pick a disk image" dialog
 * fix for a bug that meant using the 'pick an image' dialog
   might cause us to fail to find BIOS image files later

Peter Maydell (5):
  ui/cocoa: Pass command key through to guest when VM has mousegrab
  ui/cocoa: Correct typos in comments and variable names
  ui/cocoa: Send warning message to stderr, not stdout
  ui/cocoa: Add ".qcow2" to extension list for image load dialog
  ui/cocoa: Fix code for starting QEMU via image file load dialog

 ui/cocoa.m | 63 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 37 insertions(+), 26 deletions(-)

-- 
1.7.11.4

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 1/5] ui/cocoa: Pass command key through to guest when VM has mousegrab
  2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
@ 2013-12-08 22:59 ` Peter Maydell
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names Peter Maydell
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber, patches

The guest might want to be able to use the command key for its won
purposes (as command if it is MacOS X, or for the Windows key if
it is a PC guest, for instance). In line with other UI frontends,
pass it through if the guest has mousegrab, and only use it for UI
menu accelerators if not grabbed.

Thanks to John Arbuckle for reporting this problem, helping
us work through what the best solution would be and providing
a patch which was the initial inspiration for this one.

Reported-by: John Arbuckle <programmingkidx@gmail.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 ui/cocoa.m | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index be49179..d38cf22 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -129,8 +129,8 @@ int keymap[] =
     14, //  51      0x33    0x0e            BKSP    QZ_BACKSPACE
     0,  //  52      0x34    Undefined
     1,  //  53      0x35    0x01            ESC     QZ_ESCAPE
-    0,  //  54      0x36                            QZ_RMETA
-    0,  //  55      0x37                            QZ_LMETA
+    220, // 54      0x36    0xdc    E0,5C   R GUI   QZ_RMETA
+    219, // 55      0x37    0xdb    E0,5B   L GUI   QZ_LMETA
     42, //  56      0x38    0x2a            L SHFT  QZ_LSHIFT
     58, //  57      0x39    0x3a            CAPS    QZ_CAPSLOCK
     56, //  58      0x3A    0x38            L ALT   QZ_LALT
@@ -206,8 +206,6 @@ int keymap[] =
 
 /* Aditional 104 Key XP-Keyboard Scancodes from http://www.computer-engineering.org/ps2keyboard/scancodes1.html */
 /*
-    219 //          0xdb            e0,5b   L GUI
-    220 //          0xdc            e0,5c   R GUI
     221 //          0xdd            e0,5d   APPS
         //              E0,2A,E0,37         PRNT SCRN
         //              E1,1D,45,E1,9D,C5   PAUSE
@@ -494,6 +492,12 @@ QemuCocoaView *cocoaView;
     switch ([event type]) {
         case NSFlagsChanged:
             keycode = cocoa_keycode_to_qemu([event keyCode]);
+
+            if ((keycode == 219 || keycode == 220) && !isMouseGrabed) {
+              /* Don't pass command key changes to guest unless mouse is grabbed */
+              keycode = 0;
+            }
+
             if (keycode) {
                 if (keycode == 58 || keycode == 69) { // emulate caps lock and num lock keydown and keyup
                     kbd_put_keycode(keycode);
@@ -517,15 +521,15 @@ QemuCocoaView *cocoaView;
             }
             break;
         case NSKeyDown:
+            keycode = cocoa_keycode_to_qemu([event keyCode]);
 
-            // forward command Key Combos
-            if ([event modifierFlags] & NSCommandKeyMask) {
+            // forward command key combos to the host UI unless the mouse is grabbed
+            if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
                 [NSApp sendEvent:event];
                 return;
             }
 
             // default
-            keycode = cocoa_keycode_to_qemu([event keyCode]);
 
             // handle control + alt Key Combos (ctrl+alt is reserved for QEMU)
             if (([event modifierFlags] & NSControlKeyMask) && ([event modifierFlags] & NSAlternateKeyMask)) {
@@ -581,6 +585,13 @@ QemuCocoaView *cocoaView;
             break;
         case NSKeyUp:
             keycode = cocoa_keycode_to_qemu([event keyCode]);
+
+            // don't pass the guest a spurious key-up if we treated this
+            // command-key combo as a host UI action
+            if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
+                return;
+            }
+
             if (qemu_console_is_graphic(NULL)) {
                 if (keycode & 0x80)
                     kbd_put_keycode(0xe0);
-- 
1.7.11.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names
  2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 1/5] ui/cocoa: Pass command key through to guest when VM has mousegrab Peter Maydell
@ 2013-12-08 22:59 ` Peter Maydell
  2013-12-13 20:18   ` Stefan Weil
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 3/5] ui/cocoa: Send warning message to stderr, not stdout Peter Maydell
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber, patches

Fix various non-user-visible typos in comments and variable names.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 ui/cocoa.m | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index d38cf22..f55747f 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -52,7 +52,7 @@
 #define COCOA_MOUSE_EVENT \
         if (isTabletEnabled) { \
             kbd_mouse_event((int)(p.x * 0x7FFF / (screen.width - 1)), (int)((screen.height - p.y) * 0x7FFF / (screen.height - 1)), 0, buttons); \
-        } else if (isMouseGrabed) { \
+        } else if (isMouseGrabbed) { \
             kbd_mouse_event((int)[event deltaX], (int)[event deltaY], 0, buttons); \
         } else { \
             [NSApp sendEvent:event]; \
@@ -204,7 +204,7 @@ int keymap[] =
     200,//  126     0x7E    0xc8    E0,48   U ARROW QZ_UP
 /* completed according to http://www.libsdl.org/cgi/cvsweb.cgi/SDL12/src/video/quartz/SDL_QuartzKeys.h?rev=1.6&content-type=text/x-cvsweb-markup */
 
-/* Aditional 104 Key XP-Keyboard Scancodes from http://www.computer-engineering.org/ps2keyboard/scancodes1.html */
+/* Additional 104 Key XP-Keyboard Scancodes from http://www.computer-engineering.org/ps2keyboard/scancodes1.html */
 /*
     221 //          0xdd            e0,5d   APPS
         //              E0,2A,E0,37         PRNT SCRN
@@ -260,7 +260,7 @@ static int cocoa_keycode_to_qemu(int keycode)
     float cx,cy,cw,ch,cdx,cdy;
     CGDataProviderRef dataProviderRef;
     int modifiers_state[256];
-    BOOL isMouseGrabed;
+    BOOL isMouseGrabbed;
     BOOL isFullscreen;
     BOOL isAbsoluteEnabled;
     BOOL isTabletEnabled;
@@ -271,7 +271,7 @@ static int cocoa_keycode_to_qemu(int keycode)
 - (void) toggleFullScreen:(id)sender;
 - (void) handleEvent:(NSEvent *)event;
 - (void) setAbsoluteEnabled:(BOOL)tIsAbsoluteEnabled;
-- (BOOL) isMouseGrabed;
+- (BOOL) isMouseGrabbed;
 - (BOOL) isAbsoluteEnabled;
 - (float) cdx;
 - (float) cdy;
@@ -493,7 +493,7 @@ QemuCocoaView *cocoaView;
         case NSFlagsChanged:
             keycode = cocoa_keycode_to_qemu([event keyCode]);
 
-            if ((keycode == 219 || keycode == 220) && !isMouseGrabed) {
+            if ((keycode == 219 || keycode == 220) && !isMouseGrabbed) {
               /* Don't pass command key changes to guest unless mouse is grabbed */
               keycode = 0;
             }
@@ -524,7 +524,7 @@ QemuCocoaView *cocoaView;
             keycode = cocoa_keycode_to_qemu([event keyCode]);
 
             // forward command key combos to the host UI unless the mouse is grabbed
-            if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
+            if (!isMouseGrabbed && ([event modifierFlags] & NSCommandKeyMask)) {
                 [NSApp sendEvent:event];
                 return;
             }
@@ -588,7 +588,7 @@ QemuCocoaView *cocoaView;
 
             // don't pass the guest a spurious key-up if we treated this
             // command-key combo as a host UI action
-            if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
+            if (!isMouseGrabbed && ([event modifierFlags] & NSCommandKeyMask)) {
                 return;
             }
 
@@ -649,7 +649,7 @@ QemuCocoaView *cocoaView;
         case NSLeftMouseUp:
             if (isTabletEnabled) {
                     COCOA_MOUSE_EVENT
-            } else if (!isMouseGrabed) {
+            } else if (!isMouseGrabbed) {
                 if (p.x > -1 && p.x < screen.width && p.y > -1 && p.y < screen.height) {
                     [self grabMouse];
                 } else {
@@ -666,7 +666,7 @@ QemuCocoaView *cocoaView;
             COCOA_MOUSE_EVENT
             break;
         case NSScrollWheel:
-            if (isTabletEnabled || isMouseGrabed) {
+            if (isTabletEnabled || isMouseGrabbed) {
                 kbd_mouse_event(0, 0, -[event deltaY], 0);
             } else {
                 [NSApp sendEvent:event];
@@ -689,7 +689,7 @@ QemuCocoaView *cocoaView;
     }
     [NSCursor hide];
     CGAssociateMouseAndMouseCursorPosition(FALSE);
-    isMouseGrabed = TRUE; // while isMouseGrabed = TRUE, QemuCocoaApp sends all events to [cocoaView handleEvent:]
+    isMouseGrabbed = TRUE; // while isMouseGrabbed = TRUE, QemuCocoaApp sends all events to [cocoaView handleEvent:]
 }
 
 - (void) ungrabMouse
@@ -704,11 +704,11 @@ QemuCocoaView *cocoaView;
     }
     [NSCursor unhide];
     CGAssociateMouseAndMouseCursorPosition(TRUE);
-    isMouseGrabed = FALSE;
+    isMouseGrabbed = FALSE;
 }
 
 - (void) setAbsoluteEnabled:(BOOL)tIsAbsoluteEnabled {isAbsoluteEnabled = tIsAbsoluteEnabled;}
-- (BOOL) isMouseGrabed {return isMouseGrabed;}
+- (BOOL) isMouseGrabbed {return isMouseGrabbed;}
 - (BOOL) isAbsoluteEnabled {return isAbsoluteEnabled;}
 - (float) cdx {return cdx;}
 - (float) cdy {return cdy;}
@@ -779,7 +779,7 @@ QemuCocoaView *cocoaView;
 {
     COCOA_DEBUG("QemuCocoaAppController: applicationDidFinishLaunching\n");
 
-    // Display an open dialog box if no argument were passed or
+    // Display an open dialog box if no arguments were passed or
     // if qemu was launched from the finder ( the Finder passes "-psn" )
     if( gArgc <= 1 || strncmp ((char *)gArgv[1], "-psn", 4) == 0) {
         NSOpenPanel *op = [[NSOpenPanel alloc] init];
@@ -1011,7 +1011,7 @@ static void cocoa_refresh(DisplayChangeListener *dcl)
 
     if (kbd_mouse_is_absolute()) {
         if (![cocoaView isAbsoluteEnabled]) {
-            if ([cocoaView isMouseGrabed]) {
+            if ([cocoaView isMouseGrabbed]) {
                 [cocoaView ungrabMouse];
             }
         }
-- 
1.7.11.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 3/5] ui/cocoa: Send warning message to stderr, not stdout
  2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 1/5] ui/cocoa: Pass command key through to guest when VM has mousegrab Peter Maydell
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names Peter Maydell
@ 2013-12-08 22:59 ` Peter Maydell
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 4/5] ui/cocoa: Add ".qcow2" to extension list for image load dialog Peter Maydell
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber, patches

Bring a warning message into line with the others in this file by
sending it to stderr, not stdout, and fix a typo in it.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 ui/cocoa.m | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index f55747f..c5ab5a4 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -240,7 +240,7 @@ static int cocoa_keycode_to_qemu(int keycode)
 {
     if((sizeof(keymap)/sizeof(int)) <= keycode)
     {
-        printf("(cocoa) warning unknow keycode 0x%x\n", keycode);
+        fprintf(stderr, "(cocoa) warning unknown keycode 0x%x\n", keycode);
         return 0;
     }
     return keymap[keycode];
-- 
1.7.11.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 4/5] ui/cocoa: Add ".qcow2" to extension list for image load dialog
  2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
                   ` (2 preceding siblings ...)
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 3/5] ui/cocoa: Send warning message to stderr, not stdout Peter Maydell
@ 2013-12-08 22:59 ` Peter Maydell
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 5/5] ui/cocoa: Fix code for starting QEMU via image file " Peter Maydell
  2013-12-23 16:08 ` [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
  5 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber, patches

Add ".qcow2" to the list of file extensions which are accepted
by the initial disk image load dialog which is displayed if the
user runs QEMU without any command line arguments.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 ui/cocoa.m | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index c5ab5a4..4ca1477 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -786,7 +786,7 @@ QemuCocoaView *cocoaView;
         [op setPrompt:@"Boot image"];
         [op setMessage:@"Select the disk image you want to boot.\n\nHit the \"Cancel\" button to quit"];
         NSArray *filetypes = [NSArray arrayWithObjects:@"img", @"iso", @"dmg",
-                                 @"qcow", @"cow", @"cloop", @"vmdk", nil];
+                                 @"qcow", @"qcow2", @"cow", @"cloop", @"vmdk", nil];
 #if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)
         [op setAllowedFileTypes:filetypes];
         [op beginSheetModalForWindow:normalWindow
-- 
1.7.11.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 5/5] ui/cocoa: Fix code for starting QEMU via image file load dialog
  2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
                   ` (3 preceding siblings ...)
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 4/5] ui/cocoa: Add ".qcow2" to extension list for image load dialog Peter Maydell
@ 2013-12-08 22:59 ` Peter Maydell
  2013-12-23 16:08 ` [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
  5 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-08 22:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: Andreas Färber, patches

Fix a number of bugs in the code for starting QEMU via the image
file load dialog:
 * use the actual argv[0] rather than "qemu": this avoids failures to
   find BIOS image files caused by not looking in the correct directory
   relative to the executable path
 * allocate a large enough argv array to NULL terminate it
 * use g_strdup(X) rather than g_strdup_printf("%s", X) or
   g_strdup_printf(X)
 * disable the printing of the simulated command line argument
   (which is presumably intended for debug only)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 ui/cocoa.m | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index 4ca1477..94bf729 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -834,18 +834,18 @@ QemuCocoaView *cocoaView;
     if(returnCode == NSCancelButton) {
         exit(0);
     } else if(returnCode == NSOKButton) {
-        const char *bin = "qemu";
         char *img = (char*)[ [ [ sheet URL ] path ] cStringUsingEncoding:NSASCIIStringEncoding];
 
-        char **argv = (char**)malloc( sizeof(char*)*3 );
+        char **argv = g_new(char *, 4);
 
         [sheet close];
 
-        argv[0] = g_strdup_printf("%s", bin);
-        argv[1] = g_strdup_printf("-hda");
-        argv[2] = g_strdup_printf("%s", img);
+        argv[0] = g_strdup(gArgv[0]);
+        argv[1] = g_strdup("-hda");
+        argv[2] = g_strdup(img);
+        argv[3] = NULL;
 
-        printf("Using argc %d argv %s -hda %s\n", 3, bin, img);
+        // printf("Using argc %d argv %s -hda %s\n", 3, gArgv[0], img);
 
         [self startEmulationWithArgc:3 argv:(char**)argv];
     }
-- 
1.7.11.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names Peter Maydell
@ 2013-12-13 20:18   ` Stefan Weil
  2013-12-24  2:28     ` Peter Maydell
  0 siblings, 1 reply; 11+ messages in thread
From: Stefan Weil @ 2013-12-13 20:18 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel; +Cc: Andreas Färber, patches

Am 08.12.2013 23:59, schrieb Peter Maydell:
> Fix various non-user-visible typos in comments and variable names.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  ui/cocoa.m | 28 ++++++++++++++--------------
>  1 file changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index d38cf22..f55747f 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -52,7 +52,7 @@
>  #define COCOA_MOUSE_EVENT \
>          if (isTabletEnabled) { \
>              kbd_mouse_event((int)(p.x * 0x7FFF / (screen.width - 1)), (int)((screen.height - p.y) * 0x7FFF / (screen.height - 1)), 0, buttons); \
> -        } else if (isMouseGrabed) { \
> +        } else if (isMouseGrabbed) { \
>              kbd_mouse_event((int)[event deltaX], (int)[event deltaY], 0, buttons); \
>          } else { \
>              [NSApp sendEvent:event]; \
> @@ -204,7 +204,7 @@ int keymap[] =
>      200,//  126     0x7E    0xc8    E0,48   U ARROW QZ_UP
>  /* completed according to http://www.libsdl.org/cgi/cvsweb.cgi/SDL12/src/video/quartz/SDL_QuartzKeys.h?rev=1.6&content-type=text/x-cvsweb-markup */
>  
> -/* Aditional 104 Key XP-Keyboard Scancodes from http://www.computer-engineering.org/ps2keyboard/scancodes1.html */
> +/* Additional 104 Key XP-Keyboard Scancodes from http://www.computer-engineering.org/ps2keyboard/scancodes1.html */
>  /*
>      221 //          0xdd            e0,5d   APPS
>          //              E0,2A,E0,37         PRNT SCRN
> @@ -260,7 +260,7 @@ static int cocoa_keycode_to_qemu(int keycode)
>      float cx,cy,cw,ch,cdx,cdy;
>      CGDataProviderRef dataProviderRef;
>      int modifiers_state[256];
> -    BOOL isMouseGrabed;
> +    BOOL isMouseGrabbed;
>      BOOL isFullscreen;
>      BOOL isAbsoluteEnabled;
>      BOOL isTabletEnabled;
> @@ -271,7 +271,7 @@ static int cocoa_keycode_to_qemu(int keycode)
>  - (void) toggleFullScreen:(id)sender;
>  - (void) handleEvent:(NSEvent *)event;
>  - (void) setAbsoluteEnabled:(BOOL)tIsAbsoluteEnabled;
> -- (BOOL) isMouseGrabed;
> +- (BOOL) isMouseGrabbed;
>  - (BOOL) isAbsoluteEnabled;
>  - (float) cdx;
>  - (float) cdy;
> @@ -493,7 +493,7 @@ QemuCocoaView *cocoaView;
>          case NSFlagsChanged:
>              keycode = cocoa_keycode_to_qemu([event keyCode]);
>  
> -            if ((keycode == 219 || keycode == 220) && !isMouseGrabed) {
> +            if ((keycode == 219 || keycode == 220) && !isMouseGrabbed) {
>                /* Don't pass command key changes to guest unless mouse is grabbed */
>                keycode = 0;
>              }
> @@ -524,7 +524,7 @@ QemuCocoaView *cocoaView;
>              keycode = cocoa_keycode_to_qemu([event keyCode]);
>  
>              // forward command key combos to the host UI unless the mouse is grabbed
> -            if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
> +            if (!isMouseGrabbed && ([event modifierFlags] & NSCommandKeyMask)) {
>                  [NSApp sendEvent:event];
>                  return;
>              }
> @@ -588,7 +588,7 @@ QemuCocoaView *cocoaView;
>  
>              // don't pass the guest a spurious key-up if we treated this
>              // command-key combo as a host UI action
> -            if (!isMouseGrabed && ([event modifierFlags] & NSCommandKeyMask)) {
> +            if (!isMouseGrabbed && ([event modifierFlags] & NSCommandKeyMask)) {
>                  return;
>              }
>  
> @@ -649,7 +649,7 @@ QemuCocoaView *cocoaView;
>          case NSLeftMouseUp:
>              if (isTabletEnabled) {
>                      COCOA_MOUSE_EVENT
> -            } else if (!isMouseGrabed) {
> +            } else if (!isMouseGrabbed) {
>                  if (p.x > -1 && p.x < screen.width && p.y > -1 && p.y < screen.height) {
>                      [self grabMouse];
>                  } else {
> @@ -666,7 +666,7 @@ QemuCocoaView *cocoaView;
>              COCOA_MOUSE_EVENT
>              break;
>          case NSScrollWheel:
> -            if (isTabletEnabled || isMouseGrabed) {
> +            if (isTabletEnabled || isMouseGrabbed) {
>                  kbd_mouse_event(0, 0, -[event deltaY], 0);
>              } else {
>                  [NSApp sendEvent:event];
> @@ -689,7 +689,7 @@ QemuCocoaView *cocoaView;
>      }
>      [NSCursor hide];
>      CGAssociateMouseAndMouseCursorPosition(FALSE);
> -    isMouseGrabed = TRUE; // while isMouseGrabed = TRUE, QemuCocoaApp sends all events to [cocoaView handleEvent:]
> +    isMouseGrabbed = TRUE; // while isMouseGrabbed = TRUE, QemuCocoaApp sends all events to [cocoaView handleEvent:]
>  }
>  
>  - (void) ungrabMouse
> @@ -704,11 +704,11 @@ QemuCocoaView *cocoaView;
>      }
>      [NSCursor unhide];
>      CGAssociateMouseAndMouseCursorPosition(TRUE);
> -    isMouseGrabed = FALSE;
> +    isMouseGrabbed = FALSE;
>  }
>  
>  - (void) setAbsoluteEnabled:(BOOL)tIsAbsoluteEnabled {isAbsoluteEnabled = tIsAbsoluteEnabled;}
> -- (BOOL) isMouseGrabed {return isMouseGrabed;}
> +- (BOOL) isMouseGrabbed {return isMouseGrabbed;}
>  - (BOOL) isAbsoluteEnabled {return isAbsoluteEnabled;}
>  - (float) cdx {return cdx;}
>  - (float) cdy {return cdy;}
> @@ -779,7 +779,7 @@ QemuCocoaView *cocoaView;
>  {
>      COCOA_DEBUG("QemuCocoaAppController: applicationDidFinishLaunching\n");
>  
> -    // Display an open dialog box if no argument were passed or
> +    // Display an open dialog box if no arguments were passed or
>      // if qemu was launched from the finder ( the Finder passes "-psn" )
>      if( gArgc <= 1 || strncmp ((char *)gArgv[1], "-psn", 4) == 0) {
>          NSOpenPanel *op = [[NSOpenPanel alloc] init];
> @@ -1011,7 +1011,7 @@ static void cocoa_refresh(DisplayChangeListener *dcl)
>  
>      if (kbd_mouse_is_absolute()) {
>          if (![cocoaView isAbsoluteEnabled]) {
> -            if ([cocoaView isMouseGrabed]) {
> +            if ([cocoaView isMouseGrabbed]) {
>                  [cocoaView ungrabMouse];
>              }
>          }



Reviewed-by: Stefan Weil <sw@weilnetz.de>

PS. Does anybody know how to add the QEMU mascot as a Cocoa application
icon for all QEMU applications?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches
  2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
                   ` (4 preceding siblings ...)
  2013-12-08 22:59 ` [Qemu-devel] [PATCH 5/5] ui/cocoa: Fix code for starting QEMU via image file " Peter Maydell
@ 2013-12-23 16:08 ` Peter Maydell
  2013-12-24 13:03   ` Andreas Färber
  5 siblings, 1 reply; 11+ messages in thread
From: Peter Maydell @ 2013-12-23 16:08 UTC (permalink / raw)
  To: QEMU Developers; +Cc: Andreas Färber, Patch Tracking

On 8 December 2013 22:59, Peter Maydell <peter.maydell@linaro.org> wrote:
> This patchset is a collection of minor Cocoa UI patches:
>  * the 'pass command key through when mousegrabbed' patch I sent
>    earlier (included here for convenience since the others in
>    the series would otherwise trivially conflict)
>  * typo fixes
>  * support for loading *.qcow2 via the "pick a disk image" dialog
>  * fix for a bug that meant using the 'pick an image' dialog
>    might cause us to fail to find BIOS image files later
>
> Peter Maydell (5):
>   ui/cocoa: Pass command key through to guest when VM has mousegrab
>   ui/cocoa: Correct typos in comments and variable names
>   ui/cocoa: Send warning message to stderr, not stdout
>   ui/cocoa: Add ".qcow2" to extension list for image load dialog
>   ui/cocoa: Fix code for starting QEMU via image file load dialog

Ping! Last call for review/testing; otherwise I'll put these into a pullreq
with the MAINTAINERS file update and send it out in a week or so.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names
  2013-12-13 20:18   ` Stefan Weil
@ 2013-12-24  2:28     ` Peter Maydell
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-24  2:28 UTC (permalink / raw)
  To: Stefan Weil; +Cc: Andreas Färber, QEMU Developers, Patch Tracking

On 13 December 2013 20:18, Stefan Weil <sw@weilnetz.de> wrote:
> PS. Does anybody know how to add the QEMU mascot as a Cocoa application
> icon for all QEMU applications?

I have some code which programmatically sets the icon for QEMU
from a file when it runs:

+    const char *iconfile = "qemu-icon.bmp";
+    const char *icondir = os_find_datadir(gArgv[0]);
+    if (!icondir) {
+        icondir = CONFIG_QEMU_DATADIR;
+    }
+    NSString *iconstring = [NSString stringWithFormat:@"%s/%s",
icondir, iconfile];
+    NSImage *icon = [[NSImage alloc] initWithContentsOfFile:iconstring];
+    if (icon) {
+        [NSApp setApplicationIconImage:icon];
+    }

(goes in ui/cocoa.m just before we set up the menus).
However the qemu-icon.bmp looks awful in the MacOS
dock: it has a white background, not transparent, and the resolution
is probably wrong too.

I suspect the best approach is going to be to create and ship a
TIFF file with the relevant set of icons for various resolutions in it,
as per the documentation on 'tiffutil' in this page:
https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html#//apple_ref/doc/uid/TP40012302-CH7-SW13

but that's beyond my artistic and/or image mangling abilities
I think. If somebody else feels like doing that I can clean
up the code patch for posting, but there's not much point
otherwise.

(I don't think it's possible to make the QEMU executable
have an icon in the Finder, unless we turn it from a plain
command line executable into an "app bundle". And if
we did that you wouldn't be able to run it easily from the
terminal with command line arguments, which in practice
you absolutely have to be able to do for it to be at all useful.)

thanks
-- PMM

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches
  2013-12-23 16:08 ` [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
@ 2013-12-24 13:03   ` Andreas Färber
  2013-12-24 14:46     ` Peter Maydell
  0 siblings, 1 reply; 11+ messages in thread
From: Andreas Färber @ 2013-12-24 13:03 UTC (permalink / raw)
  To: Peter Maydell, QEMU Developers; +Cc: Patch Tracking

Am 23.12.2013 17:08, schrieb Peter Maydell:
> On 8 December 2013 22:59, Peter Maydell <peter.maydell@linaro.org> wrote:
>> This patchset is a collection of minor Cocoa UI patches:
>>  * the 'pass command key through when mousegrabbed' patch I sent
>>    earlier (included here for convenience since the others in
>>    the series would otherwise trivially conflict)
>>  * typo fixes
>>  * support for loading *.qcow2 via the "pick a disk image" dialog
>>  * fix for a bug that meant using the 'pick an image' dialog
>>    might cause us to fail to find BIOS image files later
>>
>> Peter Maydell (5):
>>   ui/cocoa: Pass command key through to guest when VM has mousegrab
>>   ui/cocoa: Correct typos in comments and variable names
>>   ui/cocoa: Send warning message to stderr, not stdout
>>   ui/cocoa: Add ".qcow2" to extension list for image load dialog
>>   ui/cocoa: Fix code for starting QEMU via image file load dialog
> 
> Ping! Last call for review/testing; otherwise I'll put these into a pullreq
> with the MAINTAINERS file update and send it out in a week or so.

I'm not anywhere near my Mac for testing over the holidays, so if you've
taken reasonable assurance that patches don't just work on the latest
and greatest x86_64 APIs then please feel free to submit a PULL.

Regards,
Andreas

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches
  2013-12-24 13:03   ` Andreas Färber
@ 2013-12-24 14:46     ` Peter Maydell
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2013-12-24 14:46 UTC (permalink / raw)
  To: Andreas Färber; +Cc: QEMU Developers, Patch Tracking

On 24 December 2013 13:03, Andreas Färber <andreas.faerber@web.de> wrote:
> Am 23.12.2013 17:08, schrieb Peter Maydell:
>> On 8 December 2013 22:59, Peter Maydell <peter.maydell@linaro.org> wrote:
>>> This patchset is a collection of minor Cocoa UI patches:
>>>  * the 'pass command key through when mousegrabbed' patch I sent
>>>    earlier (included here for convenience since the others in
>>>    the series would otherwise trivially conflict)
>>>  * typo fixes
>>>  * support for loading *.qcow2 via the "pick a disk image" dialog
>>>  * fix for a bug that meant using the 'pick an image' dialog
>>>    might cause us to fail to find BIOS image files later
>>>
>>> Peter Maydell (5):
>>>   ui/cocoa: Pass command key through to guest when VM has mousegrab
>>>   ui/cocoa: Correct typos in comments and variable names
>>>   ui/cocoa: Send warning message to stderr, not stdout
>>>   ui/cocoa: Add ".qcow2" to extension list for image load dialog
>>>   ui/cocoa: Fix code for starting QEMU via image file load dialog
>>
>> Ping! Last call for review/testing; otherwise I'll put these into a pullreq
>> with the MAINTAINERS file update and send it out in a week or so.
>
> I'm not anywhere near my Mac for testing over the holidays, so if you've
> taken reasonable assurance that patches don't just work on the latest
> and greatest x86_64 APIs then please feel free to submit a PULL.

The only two new API calls in any of these patches are
CGContextSetRGBFillColor() and CGContextFillRect(), both of
which are documented as "10.0 and up", so I think we're good on
that score, though I don't have any way of doing an actual test on 10.3
or PPC.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2013-12-24 14:47 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-08 22:59 [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 1/5] ui/cocoa: Pass command key through to guest when VM has mousegrab Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 2/5] ui/cocoa: Correct typos in comments and variable names Peter Maydell
2013-12-13 20:18   ` Stefan Weil
2013-12-24  2:28     ` Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 3/5] ui/cocoa: Send warning message to stderr, not stdout Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 4/5] ui/cocoa: Add ".qcow2" to extension list for image load dialog Peter Maydell
2013-12-08 22:59 ` [Qemu-devel] [PATCH 5/5] ui/cocoa: Fix code for starting QEMU via image file " Peter Maydell
2013-12-23 16:08 ` [Qemu-devel] [PATCH 0/5] miscellaneous minor cocoa UI patches Peter Maydell
2013-12-24 13:03   ` Andreas Färber
2013-12-24 14:46     ` Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).