On 19/05/2022 10.57, Markus Armbruster wrote:
Daniel P. Berrangé <berrange(a)redhat.com> writes:
> On Thu, May 19, 2022 at 09:27:08AM +0200, Thomas Huth wrote:
>> On 19/05/2022 09.08, Thomas Huth wrote:
>>> 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.
>>
>> Oh well, I just noticed that we already have a GrabToggleKeys enum in
>> qapi/common.json ... I wonder whether I should try to use that instead? It
>> seems to be used in a slightly different context, though, if I get that
>> right ...?
>
> It also doesn't distinguish left & right control/alt/shift keys
> for some reason. So you would end up having to add more enum
> entries for SDL, none of which overlap with existing enum entries.
> Rather a pity, as the consistency would have been nice
Speaking of consistency: stick to the key names we use in QKeyCode?
Sadly, they contain '_'.
The "grab-mod" with the current name already exists, so if we want to switch
to those names, we need to deprecate the current ones again ... and the
enums would really look ugly in the code, too, e.g. CTRL_L_ALT_L ... hard to
tell where the "L" really belongs to ... so I'd rather stick with the
current names, I think.
Thomas