aboutsummaryrefslogtreecommitdiff
path: root/qapi
diff options
context:
space:
mode:
authorGustavo Noronha Silva <gustavo@noronha.dev.br>2022-03-06 21:11:18 +0900
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>2022-03-15 13:36:33 +0100
commitf844cdb997144a3fd83d7d18e32365fc6a1a8a1f (patch)
tree92fbd9377d6348f01e7268bad3c011f985eddec0 /qapi
parent69221df8cde644ce75053986b712c40a2a83966a (diff)
ui/cocoa: capture all keys and combos when mouse is grabbed
Applications such as Gnome may use Alt-Tab and Super-Tab for different purposes, some use Ctrl-arrows so we want to allow qemu to handle everything when it captures the mouse/keyboard. However, Mac OS handles some combos like Command-Tab and Ctrl-arrows at an earlier part of the event handling chain, not letting qemu see it. We add a global Event Tap that allows qemu to see all events when the mouse is grabbed. Note that this requires additional permissions. See: https://developer.apple.com/documentation/coregraphics/1454426-cgeventtapcreate?language=objc#discussion https://support.apple.com/en-in/guide/mac-help/mh32356/mac Acked-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Gustavo Noronha Silva <gustavo@noronha.dev.br> Message-Id: <20210713213200.2547-2-gustavo@noronha.dev.br> Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com> Message-Id: <20220306121119.45631-2-akihiko.odaki@gmail.com> Reviewed-by: Will Cohen <wwcohen@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Diffstat (limited to 'qapi')
-rw-r--r--qapi/ui.json8
1 files changed, 7 insertions, 1 deletions
diff --git a/qapi/ui.json b/qapi/ui.json
index 4dea35a819..1d60d5fc78 100644
--- a/qapi/ui.json
+++ b/qapi/ui.json
@@ -1270,11 +1270,17 @@
# host without sending this key to the guest when
# "off". Defaults to "on"
#
+# @full-grab: Capture all key presses, including system combos. This
+# requires accessibility permissions, since it performs
+# a global grab on key events. (default: off)
+# See https://support.apple.com/en-in/guide/mac-help/mh32356/mac
+#
# Since: 7.0
##
{ 'struct': 'DisplayCocoa',
'data': {
- '*left-command-key': 'bool'
+ '*left-command-key': 'bool',
+ '*full-grab': 'bool'
} }
##