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 '_'.