diff mbox series

ui/cocoa: user friendly characters for release mouse

Message ID E1pAClj-0003Jo-OB@lizzy.crudebyte.com
State New
Headers show
Series ui/cocoa: user friendly characters for release mouse | expand

Commit Message

Christian Schoenebeck Dec. 27, 2022, 4:15 p.m. UTC
While mouse is grabbed, window title contains a hint for the user what
keyboard keys to press to release the mouse. Make that hint text a bit
more user friendly for a Mac user:

 - Replace "Ctrl" and "Alt" by appropriate symbols for those keyboard
   keys typically displayed for them on a Mac (encode those symbols by
   using UTF-8 characters).

 - Drop " + " in between the keys, as that's not common on macOS for
   documenting keyboard shortcuts.

 - Convert lower case "g" to upper case "G", as that's common on macOS.

 - Add one additional space at start and end of key stroke set, to
   visually separate the key strokes from the rest of the text.

Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
---
 ui/cocoa.m | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Christian Schoenebeck Dec. 29, 2022, 9:24 a.m. UTC | #1
On Tuesday, December 27, 2022 5:15:31 PM CET Christian Schoenebeck wrote:
> While mouse is grabbed, window title contains a hint for the user what
> keyboard keys to press to release the mouse. Make that hint text a bit
> more user friendly for a Mac user:
> 
>  - Replace "Ctrl" and "Alt" by appropriate symbols for those keyboard
>    keys typically displayed for them on a Mac (encode those symbols by
>    using UTF-8 characters).
> 
>  - Drop " + " in between the keys, as that's not common on macOS for
>    documenting keyboard shortcuts.
> 
>  - Convert lower case "g" to upper case "G", as that's common on macOS.
> 
>  - Add one additional space at start and end of key stroke set, to
>    visually separate the key strokes from the rest of the text.
> 
> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
> ---
>  ui/cocoa.m | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)

Screenshot attached how title bar looks like (on Mac hosts) after this change.

> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index e915c344a8..289a2b193e 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -72,6 +72,9 @@
>  
>  #define cgrect(nsrect) (*(CGRect *)&(nsrect))
>  
> +#define UC_CTRL_KEY "\xe2\x8c\x83"
> +#define UC_ALT_KEY "\xe2\x8c\xa5"
> +
>  typedef struct {
>      int width;
>      int height;
> @@ -1135,9 +1138,9 @@ - (void) grabMouse
>  
>      if (!isFullscreen) {
>          if (qemu_name)
> -            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press ctrl + alt + g to release Mouse)", qemu_name]];
> +            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)", qemu_name]];
>          else
> -            [normalWindow setTitle:@"QEMU - (Press ctrl + alt + g to release Mouse)"];
> +            [normalWindow setTitle:@"QEMU - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)"];
>      }
>      [self hideCursor];
>      CGAssociateMouseAndMouseCursorPosition(isAbsoluteEnabled);
>
Philippe Mathieu-Daudé Dec. 29, 2022, 12:31 p.m. UTC | #2
On 27/12/22 17:15, Christian Schoenebeck wrote:
> While mouse is grabbed, window title contains a hint for the user what
> keyboard keys to press to release the mouse. Make that hint text a bit
> more user friendly for a Mac user:
> 
>   - Replace "Ctrl" and "Alt" by appropriate symbols for those keyboard
>     keys typically displayed for them on a Mac (encode those symbols by
>     using UTF-8 characters).
> 
>   - Drop " + " in between the keys, as that's not common on macOS for
>     documenting keyboard shortcuts.
> 
>   - Convert lower case "g" to upper case "G", as that's common on macOS.
> 
>   - Add one additional space at start and end of key stroke set, to
>     visually separate the key strokes from the rest of the text.
> 
> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
> ---
>   ui/cocoa.m | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index e915c344a8..289a2b193e 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -72,6 +72,9 @@
>   
>   #define cgrect(nsrect) (*(CGRect *)&(nsrect))
>   
> +#define UC_CTRL_KEY "\xe2\x8c\x83"
> +#define UC_ALT_KEY "\xe2\x8c\xa5"
> +
>   typedef struct {
>       int width;
>       int height;
> @@ -1135,9 +1138,9 @@ - (void) grabMouse
>   
>       if (!isFullscreen) {
>           if (qemu_name)
> -            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press ctrl + alt + g to release Mouse)", qemu_name]];
> +            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)", qemu_name]];

I was a bit confused by the control symbol at first and tough
I had to press '^'; thus I'm not sure keeping 'ctrl' wouldn't
be clearer. The UC_ALT_KEY symbol certainly is. Anyhow,

Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>

>           else
> -            [normalWindow setTitle:@"QEMU - (Press ctrl + alt + g to release Mouse)"];
> +            [normalWindow setTitle:@"QEMU - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)"];
>       }
>       [self hideCursor];
>       CGAssociateMouseAndMouseCursorPosition(isAbsoluteEnabled);
Christian Schoenebeck Dec. 30, 2022, 2:01 p.m. UTC | #3
On Thursday, December 29, 2022 1:31:09 PM CET Philippe Mathieu-Daudé wrote:
> On 27/12/22 17:15, Christian Schoenebeck wrote:
> > While mouse is grabbed, window title contains a hint for the user what
> > keyboard keys to press to release the mouse. Make that hint text a bit
> > more user friendly for a Mac user:
> > 
> >   - Replace "Ctrl" and "Alt" by appropriate symbols for those keyboard
> >     keys typically displayed for them on a Mac (encode those symbols by
> >     using UTF-8 characters).
> > 
> >   - Drop " + " in between the keys, as that's not common on macOS for
> >     documenting keyboard shortcuts.
> > 
> >   - Convert lower case "g" to upper case "G", as that's common on macOS.
> > 
> >   - Add one additional space at start and end of key stroke set, to
> >     visually separate the key strokes from the rest of the text.
> > 
> > Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
> > ---
> >   ui/cocoa.m | 7 +++++--
> >   1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/ui/cocoa.m b/ui/cocoa.m
> > index e915c344a8..289a2b193e 100644
> > --- a/ui/cocoa.m
> > +++ b/ui/cocoa.m
> > @@ -72,6 +72,9 @@
> >   
> >   #define cgrect(nsrect) (*(CGRect *)&(nsrect))
> >   
> > +#define UC_CTRL_KEY "\xe2\x8c\x83"
> > +#define UC_ALT_KEY "\xe2\x8c\xa5"
> > +
> >   typedef struct {
> >       int width;
> >       int height;
> > @@ -1135,9 +1138,9 @@ - (void) grabMouse
> >   
> >       if (!isFullscreen) {
> >           if (qemu_name)
> > -            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press ctrl + alt + g to release Mouse)", qemu_name]];
> > +            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)", qemu_name]];
> 
> I was a bit confused by the control symbol at first and tough
> I had to press '^'; thus I'm not sure keeping 'ctrl' wouldn't
> be clearer. The UC_ALT_KEY symbol certainly is. Anyhow,

It _should_ be clear to Mac users that "^" == "control" key on a Mac keyboard,
as that's how it is presented for keyboard shortcuts in all Mac menus. But if
it's really irritating then we can also revert that to either "Ctrl" or
"control". It's a quick change.

I just got itched by the "Alt" hint actually, which is not printed on any Mac
keyboard.

> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>

Thanks!

> >           else
> > -            [normalWindow setTitle:@"QEMU - (Press ctrl + alt + g to release Mouse)"];
> > +            [normalWindow setTitle:@"QEMU - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)"];
> >       }
> >       [self hideCursor];
> >       CGAssociateMouseAndMouseCursorPosition(isAbsoluteEnabled);
> 
> 
>
Christian Schoenebeck Feb. 27, 2023, 11:28 a.m. UTC | #4
On Tuesday, December 27, 2022 5:15:31 PM CET Christian Schoenebeck wrote:
> While mouse is grabbed, window title contains a hint for the user what
> keyboard keys to press to release the mouse. Make that hint text a bit
> more user friendly for a Mac user:
> 
>  - Replace "Ctrl" and "Alt" by appropriate symbols for those keyboard
>    keys typically displayed for them on a Mac (encode those symbols by
>    using UTF-8 characters).
> 
>  - Drop " + " in between the keys, as that's not common on macOS for
>    documenting keyboard shortcuts.
> 
>  - Convert lower case "g" to upper case "G", as that's common on macOS.
> 
>  - Add one additional space at start and end of key stroke set, to
>    visually separate the key strokes from the rest of the text.
> 
> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
> ---

Ping

>  ui/cocoa.m | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index e915c344a8..289a2b193e 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -72,6 +72,9 @@
>  
>  #define cgrect(nsrect) (*(CGRect *)&(nsrect))
>  
> +#define UC_CTRL_KEY "\xe2\x8c\x83"
> +#define UC_ALT_KEY "\xe2\x8c\xa5"
> +
>  typedef struct {
>      int width;
>      int height;
> @@ -1135,9 +1138,9 @@ - (void) grabMouse
>  
>      if (!isFullscreen) {
>          if (qemu_name)
> -            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press ctrl + alt + g to release Mouse)", qemu_name]];
> +            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)", qemu_name]];
>          else
> -            [normalWindow setTitle:@"QEMU - (Press ctrl + alt + g to release Mouse)"];
> +            [normalWindow setTitle:@"QEMU - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)"];
>      }
>      [self hideCursor];
>      CGAssociateMouseAndMouseCursorPosition(isAbsoluteEnabled);
>
Christian Schoenebeck March 13, 2023, 12:26 p.m. UTC | #5
On Monday, February 27, 2023 12:28:02 PM CET Christian Schoenebeck wrote:
> On Tuesday, December 27, 2022 5:15:31 PM CET Christian Schoenebeck wrote:
> > While mouse is grabbed, window title contains a hint for the user what
> > keyboard keys to press to release the mouse. Make that hint text a bit
> > more user friendly for a Mac user:
> > 
> >  - Replace "Ctrl" and "Alt" by appropriate symbols for those keyboard
> >    keys typically displayed for them on a Mac (encode those symbols by
> >    using UTF-8 characters).
> > 
> >  - Drop " + " in between the keys, as that's not common on macOS for
> >    documenting keyboard shortcuts.
> > 
> >  - Convert lower case "g" to upper case "G", as that's common on macOS.
> > 
> >  - Add one additional space at start and end of key stroke set, to
> >    visually separate the key strokes from the rest of the text.
> > 
> > Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
> > ---
> 
> Ping

Gerd,

given that I got a RB and TB from Philippe, would you queue this minor macOS
patch please?

Best regards,
Christian Schoenebeck

> >  ui/cocoa.m | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/ui/cocoa.m b/ui/cocoa.m
> > index e915c344a8..289a2b193e 100644
> > --- a/ui/cocoa.m
> > +++ b/ui/cocoa.m
> > @@ -72,6 +72,9 @@
> >  
> >  #define cgrect(nsrect) (*(CGRect *)&(nsrect))
> >  
> > +#define UC_CTRL_KEY "\xe2\x8c\x83"
> > +#define UC_ALT_KEY "\xe2\x8c\xa5"
> > +
> >  typedef struct {
> >      int width;
> >      int height;
> > @@ -1135,9 +1138,9 @@ - (void) grabMouse
> >  
> >      if (!isFullscreen) {
> >          if (qemu_name)
> > -            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press ctrl + alt + g to release Mouse)", qemu_name]];
> > +            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)", qemu_name]];
> >          else
> > -            [normalWindow setTitle:@"QEMU - (Press ctrl + alt + g to release Mouse)"];
> > +            [normalWindow setTitle:@"QEMU - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)"];
> >      }
> >      [self hideCursor];
> >      CGAssociateMouseAndMouseCursorPosition(isAbsoluteEnabled);
> > 
> 
> 
> 
>
BALATON Zoltan March 13, 2023, 1:42 p.m. UTC | #6
On Mon, 13 Mar 2023, Christian Schoenebeck wrote:
> On Monday, February 27, 2023 12:28:02 PM CET Christian Schoenebeck wrote:
>> On Tuesday, December 27, 2022 5:15:31 PM CET Christian Schoenebeck wrote:
>>> While mouse is grabbed, window title contains a hint for the user what
>>> keyboard keys to press to release the mouse. Make that hint text a bit
>>> more user friendly for a Mac user:
>>>
>>>  - Replace "Ctrl" and "Alt" by appropriate symbols for those keyboard
>>>    keys typically displayed for them on a Mac (encode those symbols by
>>>    using UTF-8 characters).
>>>
>>>  - Drop " + " in between the keys, as that's not common on macOS for
>>>    documenting keyboard shortcuts.
>>>
>>>  - Convert lower case "g" to upper case "G", as that's common on macOS.
>>>
>>>  - Add one additional space at start and end of key stroke set, to
>>>    visually separate the key strokes from the rest of the text.
>>>
>>> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
>>> ---
>>
>> Ping
>
> Gerd,
>
> given that I got a RB and TB from Philippe, would you queue this minor macOS
> patch please?

Isn't this already merged as 23bdd0de97a18 ?

Regards,
BALATON Zoltan

> Best regards,
> Christian Schoenebeck
>
>>>  ui/cocoa.m | 7 +++++--
>>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/ui/cocoa.m b/ui/cocoa.m
>>> index e915c344a8..289a2b193e 100644
>>> --- a/ui/cocoa.m
>>> +++ b/ui/cocoa.m
>>> @@ -72,6 +72,9 @@
>>>
>>>  #define cgrect(nsrect) (*(CGRect *)&(nsrect))
>>>
>>> +#define UC_CTRL_KEY "\xe2\x8c\x83"
>>> +#define UC_ALT_KEY "\xe2\x8c\xa5"
>>> +
>>>  typedef struct {
>>>      int width;
>>>      int height;
>>> @@ -1135,9 +1138,9 @@ - (void) grabMouse
>>>
>>>      if (!isFullscreen) {
>>>          if (qemu_name)
>>> -            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press ctrl + alt + g to release Mouse)", qemu_name]];
>>> +            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)", qemu_name]];
>>>          else
>>> -            [normalWindow setTitle:@"QEMU - (Press ctrl + alt + g to release Mouse)"];
>>> +            [normalWindow setTitle:@"QEMU - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)"];
>>>      }
>>>      [self hideCursor];
>>>      CGAssociateMouseAndMouseCursorPosition(isAbsoluteEnabled);
>>>
>>
>>
>>
>>
>
>
>
>
>
Christian Schoenebeck March 13, 2023, 1:53 p.m. UTC | #7
On Monday, March 13, 2023 2:42:36 PM CET BALATON Zoltan wrote:
> On Mon, 13 Mar 2023, Christian Schoenebeck wrote:
> > On Monday, February 27, 2023 12:28:02 PM CET Christian Schoenebeck wrote:
> >> On Tuesday, December 27, 2022 5:15:31 PM CET Christian Schoenebeck wrote:
> >>> While mouse is grabbed, window title contains a hint for the user what
> >>> keyboard keys to press to release the mouse. Make that hint text a bit
> >>> more user friendly for a Mac user:
> >>>
> >>>  - Replace "Ctrl" and "Alt" by appropriate symbols for those keyboard
> >>>    keys typically displayed for them on a Mac (encode those symbols by
> >>>    using UTF-8 characters).
> >>>
> >>>  - Drop " + " in between the keys, as that's not common on macOS for
> >>>    documenting keyboard shortcuts.
> >>>
> >>>  - Convert lower case "g" to upper case "G", as that's common on macOS.
> >>>
> >>>  - Add one additional space at start and end of key stroke set, to
> >>>    visually separate the key strokes from the rest of the text.
> >>>
> >>> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
> >>> ---
> >>
> >> Ping
> >
> > Gerd,
> >
> > given that I got a RB and TB from Philippe, would you queue this minor macOS
> > patch please?
> 
> Isn't this already merged as 23bdd0de97a18 ?

Ah yes, thanks! Sorry for the noise!

Best regards,
Christian Schoenebeck
Philippe Mathieu-Daudé March 13, 2023, 2:38 p.m. UTC | #8
On 13/3/23 14:53, Christian Schoenebeck wrote:
> On Monday, March 13, 2023 2:42:36 PM CET BALATON Zoltan wrote:
>> On Mon, 13 Mar 2023, Christian Schoenebeck wrote:
>>> On Monday, February 27, 2023 12:28:02 PM CET Christian Schoenebeck wrote:
>>>> On Tuesday, December 27, 2022 5:15:31 PM CET Christian Schoenebeck wrote:
>>>>> While mouse is grabbed, window title contains a hint for the user what
>>>>> keyboard keys to press to release the mouse. Make that hint text a bit
>>>>> more user friendly for a Mac user:
>>>>>
>>>>>   - Replace "Ctrl" and "Alt" by appropriate symbols for those keyboard
>>>>>     keys typically displayed for them on a Mac (encode those symbols by
>>>>>     using UTF-8 characters).
>>>>>
>>>>>   - Drop " + " in between the keys, as that's not common on macOS for
>>>>>     documenting keyboard shortcuts.
>>>>>
>>>>>   - Convert lower case "g" to upper case "G", as that's common on macOS.
>>>>>
>>>>>   - Add one additional space at start and end of key stroke set, to
>>>>>     visually separate the key strokes from the rest of the text.
>>>>>
>>>>> Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
>>>>> ---
>>>>
>>>> Ping
>>>
>>> Gerd,
>>>
>>> given that I got a RB and TB from Philippe, would you queue this minor macOS
>>> patch please?
>>
>> Isn't this already merged as 23bdd0de97a18 ?
> 
> Ah yes, thanks! Sorry for the noise!

Sorry my bad, back then I forgot to reply to the patch mentioning
I'd queue this patch.
diff mbox series

Patch

diff --git a/ui/cocoa.m b/ui/cocoa.m
index e915c344a8..289a2b193e 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -72,6 +72,9 @@ 
 
 #define cgrect(nsrect) (*(CGRect *)&(nsrect))
 
+#define UC_CTRL_KEY "\xe2\x8c\x83"
+#define UC_ALT_KEY "\xe2\x8c\xa5"
+
 typedef struct {
     int width;
     int height;
@@ -1135,9 +1138,9 @@  - (void) grabMouse
 
     if (!isFullscreen) {
         if (qemu_name)
-            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press ctrl + alt + g to release Mouse)", qemu_name]];
+            [normalWindow setTitle:[NSString stringWithFormat:@"QEMU %s - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)", qemu_name]];
         else
-            [normalWindow setTitle:@"QEMU - (Press ctrl + alt + g to release Mouse)"];
+            [normalWindow setTitle:@"QEMU - (Press  " UC_CTRL_KEY " " UC_ALT_KEY " G  to release Mouse)"];
     }
     [self hideCursor];
     CGAssociateMouseAndMouseCursorPosition(isAbsoluteEnabled);