[PATCH] ui/cocoa: Fix switched_to_fullscreen warning

Peter Delevoryas posted 1 patch 3 years, 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220702044304.90553-1-peter@pjd.dev
Maintainers: Peter Maydell <peter.maydell@linaro.org>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Akihiko Odaki <akihiko.odaki@gmail.com>, Gerd Hoffmann <kraxel@redhat.com>
ui/cocoa.m | 8 --------
1 file changed, 8 deletions(-)
[PATCH] ui/cocoa: Fix switched_to_fullscreen warning
Posted by Peter Delevoryas 3 years, 7 months ago
I noticed this error while building QEMU on Mac OS X:

    [1040/1660] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o
    ../ui/cocoa.m:803:17: warning: variable 'switched_to_fullscreen' set but not used [-Wunused-but-set-variable]
        static bool switched_to_fullscreen = false;
                    ^
    1 warning generated.

I think the behavior is fine if you remove "switched_to_fullscreen", I can
still switch in and out of mouse grabbed mode and fullscreen mode with this
change, and Command keycodes will only be passed to the guest if the mouse
is grabbed, which I think is the right behavior. I'm not sure why a static
piece of state was needed to handle that in the first place. Perhaps the
refactoring of the flags-state-change fixed that by toggling the Command
keycode on.

I tested this with an Ubuntu core image on macOS 12.4

    wget https://cdimage.ubuntu.com/ubuntu-core/18/stable/current/ubuntu-core-18-i386.img.xz
    xz -d ubuntu-core-18-i386.img.xz
    qemu-system-x86_64 -drive file=ubuntu-core-18.i386.img,format=raw

Fixes: 6d73bb643aa7 ("ui/cocoa: Clear modifiers whenever possible")
Signed-off-by: Peter Delevoryas <peter@pjd.dev>
---
 ui/cocoa.m | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index 84c84e98fc..13e208b037 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -800,7 +800,6 @@ - (bool) handleEventLocked:(NSEvent *)event
     int buttons = 0;
     int keycode = 0;
     bool mouse_event = false;
-    static bool switched_to_fullscreen = false;
     // Location of event in virtual screen coordinates
     NSPoint p = [self screenLocationOfEvent:event];
     NSUInteger modifiers = [event modifierFlags];
@@ -952,13 +951,6 @@ - (bool) handleEventLocked:(NSEvent *)event
 
             // forward command key combos to the host UI unless the mouse is grabbed
             if (!isMouseGrabbed && ([event modifierFlags] & NSEventModifierFlagCommand)) {
-                /*
-                 * Prevent the command key from being stuck down in the guest
-                 * when using Command-F to switch to full screen mode.
-                 */
-                if (keycode == Q_KEY_CODE_F) {
-                    switched_to_fullscreen = true;
-                }
                 return false;
             }
 
-- 
2.37.0
Re: [PATCH] ui/cocoa: Fix switched_to_fullscreen warning
Posted by Philippe Mathieu-Daudé via 3 years, 7 months ago
On 2/7/22 06:43, Peter Delevoryas wrote:
> I noticed this error while building QEMU on Mac OS X:
> 
>      [1040/1660] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o
>      ../ui/cocoa.m:803:17: warning: variable 'switched_to_fullscreen' set but not used [-Wunused-but-set-variable]
>          static bool switched_to_fullscreen = false;
>                      ^
>      1 warning generated.
> 
> I think the behavior is fine if you remove "switched_to_fullscreen", I can
> still switch in and out of mouse grabbed mode and fullscreen mode with this
> change, and Command keycodes will only be passed to the guest if the mouse
> is grabbed, which I think is the right behavior. I'm not sure why a static
> piece of state was needed to handle that in the first place. Perhaps the
> refactoring of the flags-state-change fixed that by toggling the Command
> keycode on.
> 
> I tested this with an Ubuntu core image on macOS 12.4
> 
>      wget https://cdimage.ubuntu.com/ubuntu-core/18/stable/current/ubuntu-core-18-i386.img.xz
>      xz -d ubuntu-core-18-i386.img.xz
>      qemu-system-x86_64 -drive file=ubuntu-core-18.i386.img,format=raw
> 
> Fixes: 6d73bb643aa7 ("ui/cocoa: Clear modifiers whenever possible")
> Signed-off-by: Peter Delevoryas <peter@pjd.dev>
> ---
>   ui/cocoa.m | 8 --------
>   1 file changed, 8 deletions(-)

Queued, thanks.
Re: [PATCH] ui/cocoa: Fix switched_to_fullscreen warning
Posted by Akihiko Odaki 3 years, 7 months ago
Reviewed-by: Akihiko Odaki <akihiko.odaki@gmail.com>

On 2022/07/02 13:43, Peter Delevoryas wrote:
> I noticed this error while building QEMU on Mac OS X:
> 
>      [1040/1660] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o
>      ../ui/cocoa.m:803:17: warning: variable 'switched_to_fullscreen' set but not used [-Wunused-but-set-variable]
>          static bool switched_to_fullscreen = false;
>                      ^
>      1 warning generated.
> 
> I think the behavior is fine if you remove "switched_to_fullscreen", I can
> still switch in and out of mouse grabbed mode and fullscreen mode with this
> change, and Command keycodes will only be passed to the guest if the mouse
> is grabbed, which I think is the right behavior. I'm not sure why a static
> piece of state was needed to handle that in the first place. Perhaps the
> refactoring of the flags-state-change fixed that by toggling the Command
> keycode on.
> 
> I tested this with an Ubuntu core image on macOS 12.4
> 
>      wget https://cdimage.ubuntu.com/ubuntu-core/18/stable/current/ubuntu-core-18-i386.img.xz
>      xz -d ubuntu-core-18-i386.img.xz
>      qemu-system-x86_64 -drive file=ubuntu-core-18.i386.img,format=raw
> 
> Fixes: 6d73bb643aa7 ("ui/cocoa: Clear modifiers whenever possible")
> Signed-off-by: Peter Delevoryas <peter@pjd.dev>
> ---
>   ui/cocoa.m | 8 --------
>   1 file changed, 8 deletions(-)
> 
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index 84c84e98fc..13e208b037 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -800,7 +800,6 @@ - (bool) handleEventLocked:(NSEvent *)event
>       int buttons = 0;
>       int keycode = 0;
>       bool mouse_event = false;
> -    static bool switched_to_fullscreen = false;
>       // Location of event in virtual screen coordinates
>       NSPoint p = [self screenLocationOfEvent:event];
>       NSUInteger modifiers = [event modifierFlags];
> @@ -952,13 +951,6 @@ - (bool) handleEventLocked:(NSEvent *)event
>   
>               // forward command key combos to the host UI unless the mouse is grabbed
>               if (!isMouseGrabbed && ([event modifierFlags] & NSEventModifierFlagCommand)) {
> -                /*
> -                 * Prevent the command key from being stuck down in the guest
> -                 * when using Command-F to switch to full screen mode.
> -                 */
> -                if (keycode == Q_KEY_CODE_F) {
> -                    switched_to_fullscreen = true;
> -                }
>                   return false;
>               }
>
Re: [PATCH] ui/cocoa: Fix switched_to_fullscreen warning
Posted by Peter Delevoryas 3 years, 7 months ago
On Sat, Jul 02, 2022 at 11:30:16PM +0900, Akihiko Odaki wrote:
> Reviewed-by: Akihiko Odaki <akihiko.odaki@gmail.com>

Just checking in on the status of this: do I need to submit a pull request?
Or will this patch be picked up in a miscellaneous pull queue eventually?

> 
> On 2022/07/02 13:43, Peter Delevoryas wrote:
> > I noticed this error while building QEMU on Mac OS X:
> > 
> >      [1040/1660] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o
> >      ../ui/cocoa.m:803:17: warning: variable 'switched_to_fullscreen' set but not used [-Wunused-but-set-variable]
> >          static bool switched_to_fullscreen = false;
> >                      ^
> >      1 warning generated.
> > 
> > I think the behavior is fine if you remove "switched_to_fullscreen", I can
> > still switch in and out of mouse grabbed mode and fullscreen mode with this
> > change, and Command keycodes will only be passed to the guest if the mouse
> > is grabbed, which I think is the right behavior. I'm not sure why a static
> > piece of state was needed to handle that in the first place. Perhaps the
> > refactoring of the flags-state-change fixed that by toggling the Command
> > keycode on.
> > 
> > I tested this with an Ubuntu core image on macOS 12.4
> > 
> >      wget https://cdimage.ubuntu.com/ubuntu-core/18/stable/current/ubuntu-core-18-i386.img.xz
> >      xz -d ubuntu-core-18-i386.img.xz
> >      qemu-system-x86_64 -drive file=ubuntu-core-18.i386.img,format=raw
> > 
> > Fixes: 6d73bb643aa7 ("ui/cocoa: Clear modifiers whenever possible")
> > Signed-off-by: Peter Delevoryas <peter@pjd.dev>
> > ---
> >   ui/cocoa.m | 8 --------
> >   1 file changed, 8 deletions(-)
> > 
> > diff --git a/ui/cocoa.m b/ui/cocoa.m
> > index 84c84e98fc..13e208b037 100644
> > --- a/ui/cocoa.m
> > +++ b/ui/cocoa.m
> > @@ -800,7 +800,6 @@ - (bool) handleEventLocked:(NSEvent *)event
> >       int buttons = 0;
> >       int keycode = 0;
> >       bool mouse_event = false;
> > -    static bool switched_to_fullscreen = false;
> >       // Location of event in virtual screen coordinates
> >       NSPoint p = [self screenLocationOfEvent:event];
> >       NSUInteger modifiers = [event modifierFlags];
> > @@ -952,13 +951,6 @@ - (bool) handleEventLocked:(NSEvent *)event
> >               // forward command key combos to the host UI unless the mouse is grabbed
> >               if (!isMouseGrabbed && ([event modifierFlags] & NSEventModifierFlagCommand)) {
> > -                /*
> > -                 * Prevent the command key from being stuck down in the guest
> > -                 * when using Command-F to switch to full screen mode.
> > -                 */
> > -                if (keycode == Q_KEY_CODE_F) {
> > -                    switched_to_fullscreen = true;
> > -                }
> >                   return false;
> >               }
>
Re: [PATCH] ui/cocoa: Fix switched_to_fullscreen warning
Posted by Peter Delevoryas 3 years, 7 months ago
On Wed, Jul 06, 2022 at 05:58:38PM -0700, Peter Delevoryas wrote:
> On Sat, Jul 02, 2022 at 11:30:16PM +0900, Akihiko Odaki wrote:
> > Reviewed-by: Akihiko Odaki <akihiko.odaki@gmail.com>
> 
> Just checking in on the status of this: do I need to submit a pull request?
> Or will this patch be picked up in a miscellaneous pull queue eventually?

Pinging this thread again, does this change need anyone else to review it?

> 
> > 
> > On 2022/07/02 13:43, Peter Delevoryas wrote:
> > > I noticed this error while building QEMU on Mac OS X:
> > > 
> > >      [1040/1660] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o
> > >      ../ui/cocoa.m:803:17: warning: variable 'switched_to_fullscreen' set but not used [-Wunused-but-set-variable]
> > >          static bool switched_to_fullscreen = false;
> > >                      ^
> > >      1 warning generated.
> > > 
> > > I think the behavior is fine if you remove "switched_to_fullscreen", I can
> > > still switch in and out of mouse grabbed mode and fullscreen mode with this
> > > change, and Command keycodes will only be passed to the guest if the mouse
> > > is grabbed, which I think is the right behavior. I'm not sure why a static
> > > piece of state was needed to handle that in the first place. Perhaps the
> > > refactoring of the flags-state-change fixed that by toggling the Command
> > > keycode on.
> > > 
> > > I tested this with an Ubuntu core image on macOS 12.4
> > > 
> > >      wget https://cdimage.ubuntu.com/ubuntu-core/18/stable/current/ubuntu-core-18-i386.img.xz
> > >      xz -d ubuntu-core-18-i386.img.xz
> > >      qemu-system-x86_64 -drive file=ubuntu-core-18.i386.img,format=raw
> > > 
> > > Fixes: 6d73bb643aa7 ("ui/cocoa: Clear modifiers whenever possible")
> > > Signed-off-by: Peter Delevoryas <peter@pjd.dev>
> > > ---
> > >   ui/cocoa.m | 8 --------
> > >   1 file changed, 8 deletions(-)
> > > 
> > > diff --git a/ui/cocoa.m b/ui/cocoa.m
> > > index 84c84e98fc..13e208b037 100644
> > > --- a/ui/cocoa.m
> > > +++ b/ui/cocoa.m
> > > @@ -800,7 +800,6 @@ - (bool) handleEventLocked:(NSEvent *)event
> > >       int buttons = 0;
> > >       int keycode = 0;
> > >       bool mouse_event = false;
> > > -    static bool switched_to_fullscreen = false;
> > >       // Location of event in virtual screen coordinates
> > >       NSPoint p = [self screenLocationOfEvent:event];
> > >       NSUInteger modifiers = [event modifierFlags];
> > > @@ -952,13 +951,6 @@ - (bool) handleEventLocked:(NSEvent *)event
> > >               // forward command key combos to the host UI unless the mouse is grabbed
> > >               if (!isMouseGrabbed && ([event modifierFlags] & NSEventModifierFlagCommand)) {
> > > -                /*
> > > -                 * Prevent the command key from being stuck down in the guest
> > > -                 * when using Command-F to switch to full screen mode.
> > > -                 */
> > > -                if (keycode == Q_KEY_CODE_F) {
> > > -                    switched_to_fullscreen = true;
> > > -                }
> > >                   return false;
> > >               }
> > 
>
Re: [PATCH] ui/cocoa: Fix switched_to_fullscreen warning
Posted by Akihiko Odaki 3 years, 7 months ago
On 2022/07/12 9:05, Peter Delevoryas wrote:
> On Wed, Jul 06, 2022 at 05:58:38PM -0700, Peter Delevoryas wrote:
>> On Sat, Jul 02, 2022 at 11:30:16PM +0900, Akihiko Odaki wrote:
>>> Reviewed-by: Akihiko Odaki <akihiko.odaki@gmail.com>
>>
>> Just checking in on the status of this: do I need to submit a pull request?
>> Or will this patch be picked up in a miscellaneous pull queue eventually?
> 
> Pinging this thread again, does this change need anyone else to review it?

The patch should be picked up later. You may ping again if there is no 
response after weeks.

Sorry for replying late,
Akihiko Odaki

> 
>>
>>>
>>> On 2022/07/02 13:43, Peter Delevoryas wrote:
>>>> I noticed this error while building QEMU on Mac OS X:
>>>>
>>>>       [1040/1660] Compiling Objective-C object libcommon.fa.p/ui_cocoa.m.o
>>>>       ../ui/cocoa.m:803:17: warning: variable 'switched_to_fullscreen' set but not used [-Wunused-but-set-variable]
>>>>           static bool switched_to_fullscreen = false;
>>>>                       ^
>>>>       1 warning generated.
>>>>
>>>> I think the behavior is fine if you remove "switched_to_fullscreen", I can
>>>> still switch in and out of mouse grabbed mode and fullscreen mode with this
>>>> change, and Command keycodes will only be passed to the guest if the mouse
>>>> is grabbed, which I think is the right behavior. I'm not sure why a static
>>>> piece of state was needed to handle that in the first place. Perhaps the
>>>> refactoring of the flags-state-change fixed that by toggling the Command
>>>> keycode on.
>>>>
>>>> I tested this with an Ubuntu core image on macOS 12.4
>>>>
>>>>       wget https://cdimage.ubuntu.com/ubuntu-core/18/stable/current/ubuntu-core-18-i386.img.xz
>>>>       xz -d ubuntu-core-18-i386.img.xz
>>>>       qemu-system-x86_64 -drive file=ubuntu-core-18.i386.img,format=raw
>>>>
>>>> Fixes: 6d73bb643aa7 ("ui/cocoa: Clear modifiers whenever possible")
>>>> Signed-off-by: Peter Delevoryas <peter@pjd.dev>
>>>> ---
>>>>    ui/cocoa.m | 8 --------
>>>>    1 file changed, 8 deletions(-)
>>>>
>>>> diff --git a/ui/cocoa.m b/ui/cocoa.m
>>>> index 84c84e98fc..13e208b037 100644
>>>> --- a/ui/cocoa.m
>>>> +++ b/ui/cocoa.m
>>>> @@ -800,7 +800,6 @@ - (bool) handleEventLocked:(NSEvent *)event
>>>>        int buttons = 0;
>>>>        int keycode = 0;
>>>>        bool mouse_event = false;
>>>> -    static bool switched_to_fullscreen = false;
>>>>        // Location of event in virtual screen coordinates
>>>>        NSPoint p = [self screenLocationOfEvent:event];
>>>>        NSUInteger modifiers = [event modifierFlags];
>>>> @@ -952,13 +951,6 @@ - (bool) handleEventLocked:(NSEvent *)event
>>>>                // forward command key combos to the host UI unless the mouse is grabbed
>>>>                if (!isMouseGrabbed && ([event modifierFlags] & NSEventModifierFlagCommand)) {
>>>> -                /*
>>>> -                 * Prevent the command key from being stuck down in the guest
>>>> -                 * when using Command-F to switch to full screen mode.
>>>> -                 */
>>>> -                if (keycode == Q_KEY_CODE_F) {
>>>> -                    switched_to_fullscreen = true;
>>>> -                }
>>>>                    return false;
>>>>                }
>>>
>>