[Spice-devel] [PATCH spice-gtk v3 2/4] gtk-session: do an early check of clipboard grab
Frediano Ziglio
fziglio at redhat.com
Wed May 24 09:06:39 UTC 2017
>
> From: Victor Toso <me at victortoso.com>
>
> As we will not be doing anything in case clipboard is already grabbed
>
> Signed-off-by: Victor Toso <victortoso at redhat.com>
> Signed-off-by: Victor Toso <me at victortoso.com>
> ---
> src/spice-gtk-session.c | 18 +++++++++++-------
> 1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c
> index 83eaa3e..5f052ed 100644
> --- a/src/spice-gtk-session.c
> +++ b/src/spice-gtk-session.c
> @@ -636,6 +636,11 @@ static void clipboard_get_targets(GtkClipboard
> *clipboard,
> }
> }
>
> + if (s->clip_grabbed[selection]) {
> + SPICE_DEBUG("Clipboard is already grabbed, ignoring %d atoms",
> n_atoms);
> + return;
> + }
> +
> /* Set all Atoms that matches our current protocol implementation */
> num_types = 0;
> for (a = 0; a < n_atoms; a++) {
> @@ -666,14 +671,13 @@ static void clipboard_get_targets(GtkClipboard
> *clipboard,
> return;
> }
>
> - if (!s->clip_grabbed[selection]) {
> - s->clip_grabbed[selection] = TRUE;
> + s->clip_grabbed[selection] = TRUE;
>
> - if (spice_main_agent_test_capability(s->main,
> VD_AGENT_CAP_CLIPBOARD_BY_DEMAND))
> - spice_main_clipboard_selection_grab(s->main, selection, types,
> num_types);
> - /* Sending a grab causes the agent to do an implicit release */
> - s->nclip_targets[selection] = 0;
> - }
> + if (spice_main_agent_test_capability(s->main,
> VD_AGENT_CAP_CLIPBOARD_BY_DEMAND))
> + spice_main_clipboard_selection_grab(s->main, selection, types,
> num_types);
> +
> + /* Sending a grab causes the agent to do an implicit release */
> + s->nclip_targets[selection] = 0;
> }
>
> static void clipboard_owner_change(GtkClipboard *clipboard,
Acked-by: Frediano Ziglio <fziglio at redhat.com>
Frediano
More information about the Spice-devel
mailing list