Justinien Bouron <justinien.bou...@gmail.com> writes:

> Depending on your use-case, it might be inconvenient to have qemu grab
> the input device immediately upon starting the guest, especially if the
> guest takes a while to start in which case it may take a few seconds
> before being able to release the device via the toggle combination.
>
> Added a new bool option to input-linux: grab-on-startup. If true, the
> device is grabbed as soon as the guest is started, otherwise it is not
> grabbed until the toggle combination is entered. To avoid breaking
> existing setups, the default value of grab-on-startup is true, ie. same
> behaviour as before this change.
>
> Signed-off-by: Justinien Bouron <justinien.bou...@gmail.com>
> ---
>  qapi/qom.json    | 13 ++++++++++++-
>  ui/input-linux.c | 20 +++++++++++++++++++-
>  2 files changed, 31 insertions(+), 2 deletions(-)
>
> diff --git a/qapi/qom.json b/qapi/qom.json
> index 032c6fa037..50e66d55cc 100644
> --- a/qapi/qom.json
> +++ b/qapi/qom.json
> @@ -508,13 +508,24 @@
>  # @grab-toggle: the key or key combination that toggles device grab
>  #     (default: ctrl-ctrl)
>  #
> +# @grab-on-startup: if true, grab the device immediately upon starting the
> +#     guest. Otherwise, don't grab the device until the combination is 
> entered.
> +#     This does not influence other devices even if grab_all is true, ie. in 
> the

i.e.

> +#     unlikely scenario where device1 has grab_all=true + 
> grab-on-startup=true
> +#     and device2 has grab-on-startup=false, only device1 is grabbed on 
> startup,
> +#     then, once the grab combination is entered, grabbing is toggled off for
> +#     both devices (because device1 enforces the grab_all property) until the
> +#     combination is entered again at which point both devices will be 
> grabbed.
> +#     (default: true).

>From docs/devel/qapi-code-gen.rst section Documentation markup:

    For legibility, wrap text paragraphs so every line is at most 70
    characters long.

    Separate sentences with two spaces.

> +

No blank lines in the middle of comment blocks, please.

>  # Since: 2.6
>  ##

Together:

   # @grab-on-startup: if true, grab the device immediately upon starting
   #     the guest.  Otherwise, don't grab the device until the
   #     combination is entered.  This does not influence other devices
   #     even if grab_all is true, i.e. in the unlikely scenario where
   #     device1 has grab_all=true + grab-on-startup=true and device2 has
   #     grab-on-startup=false, only device1 is grabbed on startup, then,
   #     once the grab combination is entered, grabbing is toggled off
   #     for both devices (because device1 enforces the grab_all
   #     property) until the combination is entered again at which point
   #     both devices will be grabbed.  (default: true).
   #
   # Since: 2.6
   ##

>  { 'struct': 'InputLinuxProperties',
>    'data': { 'evdev': 'str',
>              '*grab_all': 'bool',
>              '*repeat': 'bool',
> -            '*grab-toggle': 'GrabToggleKeys' } }
> +            '*grab-toggle': 'GrabToggleKeys',
> +            '*grab-on-startup': 'bool'} }
>  
>  ##
>  # @EventLoopBaseProperties:

[...]


Reply via email to