[PATCH 0/2] ui/cocoa: Add option to disable left command and hide cursor on click

Carwyn Ellis posted 2 patches 2 years, 4 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220102174153.70043-1-carwynellis@gmail.com
Maintainers: Markus Armbruster <armbru@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>, Eric Blake <eblake@redhat.com>, Peter Maydell <peter.maydell@linaro.org>
qapi/ui.json    | 17 +++++++++++++++++
qemu-options.hx | 12 ++++++++++++
ui/cocoa.m      | 10 +++++++++-
3 files changed, 38 insertions(+), 1 deletion(-)
[PATCH 0/2] ui/cocoa: Add option to disable left command and hide cursor on click
Posted by Carwyn Ellis 2 years, 4 months ago
Supersedes earlier submissions and splits the patch into two separate
patches covering

  - addition of left-command-key option to disable forwarding this key
    to the guest
  - fix for persistent mouse cursor when switching from and back to the
    QEMU window

Having made the switch to an M1 Mac I needed to switch from VMware back
to QEMU in order to run some intel guests.

This patch addresses a couple of niggles with the cocoa UI, namely:

 - Using command-tab to switch between the guest OS and MacOS sends the
   command keypress to the guest which can be annoying e.g. on a
   windows guest this may trigger the start menu

 - Switching between the guest and MacOS sometimes leaves the MacOS
   mouse cursor visible with no way to hide it without switching
   windows again

I've made the following changes

 - Added a new cocoa display option left-command-key which can be used
   to disable the left command key in the guest. Default is on.

 - Added a call to ungrabMouse in the applicationWillResignActive method
   which frees the mouse and unhides the cursor when switching away from
   the QEMU window. When switching back the user must left-click in
   to grab the mouse and hide the cursor again. After testing several
   different approaches this was the only way I could find to reliably
   hide the cursor every time the user returns to QEMU after switching
   to another app on the host machine.

 - Updated the command line docs to reference the show-cursor option
   which is also respected by the cocoa UI code.

Carwyn Ellis (2):
  ui/cocoa: add option to disable left-command forwarding to guest
  ui/cocoa: release mouse when user switches away from QEMU window

 qapi/ui.json    | 17 +++++++++++++++++
 qemu-options.hx | 12 ++++++++++++
 ui/cocoa.m      | 10 +++++++++-
 3 files changed, 38 insertions(+), 1 deletion(-)

-- 
2.34.1