Hi

On Wed, Mar 24, 2021 at 2:16 PM Gerd Hoffmann <kra...@redhat.com> wrote:

>   Hi,
>
> > > +    if (gd->cbowner[s]) {
> > > +        /* ignore notifications about our own grabs */
> > > +        return;
> > > +    }
> > > +
> > > +
> > > +    switch (event->owner_change.reason) {
> > > +    case GDK_SETTING_ACTION_NEW:
> > > +        info = qemu_clipboard_info_new(&gd->cbpeer, s);
> > > +        if (gtk_clipboard_wait_is_text_available(clipboard)) {
> > > +            info->types[QEMU_CLIPBOARD_TYPE_TEXT].available = true;
> > > +        }
> > >
> >
> > Same comment as v1:
> > So after gtk_clipboard_set_text() the client side is actually taking
> > the ownership away from the guest clipboard I presume. That might have
> some
> > weird interaction issues. Hopefully the other side isn't playing the same
> > game...
>
> The cbowner check above should avoid that ...
>

I fail to see how that works, imagine the other end is the same code (qemu
in the guest), it will take clipboard ownership and it is in a endless
loop, isn't it?

>
> > > +    gd->gtkcb[QEMU_CLIPBOARD_SELECTION_CLIPBOARD] =
> > > +        gtk_clipboard_get(gdk_atom_intern("CLIPBOARD", FALSE));
> >
> > Why not use GDK_SELECTION_* ?
>
> So I don't have to worry about converting GDK_SELECTION_* to
> QEMU_CLIPBOARD_SELECTION_* ?
>
>
GDK_SELECTION* is gdk_atom_intern(*, FALSE)) afaik

-- 
Marc-André Lureau

Reply via email to