[Spice-devel] [spice-gtk v4 1/2] gtk-session: improve doc on owner-changed

Jakub Janku jjanku at redhat.com
Mon Jan 14 19:49:52 UTC 2019


Hi,

On Mon, Jan 14, 2019 at 1:34 PM Victor Toso <victortoso at redhat.com> wrote:
>
> From: Victor Toso <me at victortoso.com>
>
> * Sets -> Set (Jakub)
> * Clarify when onwer-changed event is called with
>   owner == self (Jakub)
>
> Signed-off-by: Victor Toso <victortoso at redhat.com>
> ---
>  src/spice-gtk-session.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c
> index adc72a2..abce43f 100644
> --- a/src/spice-gtk-session.c
> +++ b/src/spice-gtk-session.c
> @@ -631,7 +631,7 @@ static void clipboard_get_targets(GtkClipboard *clipboard,
>   * Situation 2: When spice-gtk holds the focus and is changing the clipboard by
>   * either setting new content information with gtk_clipboard_set_with_owner() or
>   * clearing up old content with gtk_clipboard_clear(). The main difference between
> - * Wayland and X11 is that on X11, gtk_clipboard_clear() set the owner to none, which
> + * Wayland and X11 is that on X11, gtk_clipboard_clear() sets the owner to none, which
>   * emits owner-change event; On Wayland that does not happen as spice-gtk still is
>   * the owner of the clipboard.
>   */
> @@ -668,8 +668,8 @@ static void clipboard_owner_change(GtkClipboard        *clipboard,
>          return;
>      }
>
> -    /* This situation happens when clipboard is being cleared by us, when agent
> -     * sends a release-grab for instance */
> +    /* This situation happens when clipboard is being set by us (grab message)

this is fine

> +     * and on X11 also when cleared by us (release-grab) */

But I don't understand why you added this.
If spice-gtk receives release-grab from vdagent, it calls
gtk_clipboard_clear(), then "owner-change" is emitted. In the
callback, gtk_clipboard_get_owner() returns NULL, so the condition
below evaluates as FALSE -- which is the case you're trying to handle
in 2/2 of this series, if I'm not mistaken.

So I think this line should be removed.

>      if (gtk_clipboard_get_owner(clipboard) == G_OBJECT(self)) {
>          return;
>      }
> --
> 2.20.1
>
Cheers,
Jakub


More information about the Spice-devel mailing list