On 19/05/2022 08.39, Thomas Huth wrote:
On 18/05/2022 17.08, Markus Armbruster wrote:
> Thomas Huth <thuth(a)redhat.com> writes:
>
>> The "-display sdl" option still uses a hand-crafted parser for its
>> parameters since we didn't want to drag an interface we considered
>> somewhat flawed into the QAPI schema. Since the flaws are gone now,
>> it's time to QAPIfy.
>>
>> This introduces the new "DisplaySDL" QAPI struct that is used to hold
>> the parameters that are unique to the SDL display. The only specific
>> parameter is currently "grab-mod" that is used to specify the required
>> modifier keys to escape from the mouse grabbing mode.
>>
>> Signed-off-by: Thomas Huth <thuth(a)redhat.com>
>> ---
>> qapi/ui.json | 27 +++++++++++++++-
>> include/sysemu/sysemu.h | 2 --
>> softmmu/globals.c | 2 --
>> softmmu/vl.c | 70 +----------------------------------------
>> ui/sdl2.c | 10 ++++++
>> 5 files changed, 37 insertions(+), 74 deletions(-)
>>
>> diff --git a/qapi/ui.json b/qapi/ui.json
>> index 11a827d10f..a244e26e0f 100644
>> --- a/qapi/ui.json
>> +++ b/qapi/ui.json
>> @@ -1295,6 +1295,30 @@
>> '*swap-opt-cmd': 'bool'
>> } }
>> +##
>> +# @GrabMod:
>> +#
>> +# Set of modifier keys that need to be hold for shortcut key actions.
>> +#
>> +# Since: 7.1
>> +##
>> +{ 'enum' : 'GrabMod',
>> + 'data' : [ 'lctrl-lalt', 'lshift-lctrl-lalt',
'rctrl' ] }
>
> This is fine now. If we ever generalize to "arbitrary set of modifier
> keys", it'll become somewhat awkward. No objection from me.
>
>> +
>> +##
>> +# @DisplaySDL:
>> +#
>> +# SDL2 display options.
>> +#
>> +# @grab-mod: String with modifier keys that should be pressed together
>> with
>
> s/String with modifier keys/Modifier keys/
>
>> +# the "G" key to release the mouse grab. Only
>> "lshift-lctrl-lalt"
>> +# and "rctrl" are currently supported.
>
> Why do we define lctrl-lalt if it's not supported?
It's the default value if you don't specify the grab-mod parameter. So it's
supported, you get this mode if you use "grab-mod=lctrl-lalt" or no grab-mod
parameter at all.
Forgot to mention: I'll drop that sentence in v3. Since there is the enum
now, people can look up the valid combinations there instead.
Thomas