Hi, On Wed, Feb 22, 2017 at 01:29:20PM +0100, Victor Toso wrote: > From: Victor Toso <me@xxxxxxxxxxxxxx> > > We need to reply back to the agent all clipboard requests even in case > of failure otherwise it will have a pending request. The following > error message can be seen in afterwards, when client sends down some > clipboard data: It is worth to mention in the commit log that this is a regression from 7b0de6217670e0f668aff2949f, as we were notifying the agent even on failure, see: https://gitlab.com/spice/spice-gtk/commit/7b0de6217670e0f668aff2949fba174ed3cc0b50#7d95131068c82b7224989c1c61cc3c85a9743df3_956_990 I've included in the commit log: "This fixes a regression from 7b0de6217670e0f668aff2949f" Cheers, > > > clipboard: selection requests pending on clipboard ownership > > change, clearing > > An easy way to reproduce this is: > 1-) In client, copy image from lo-draw (selection or ctrl+c) > 2-) In guest, paste it to GEdit (mouse3 our ctrl+v) > 3-) Move to the client > 4-) Move back to the guest > 5-) see error on vdagent logs > > The reason for failure is that client's clipboard contains different > data type (image) then what was requested from guest's editor (text) > > While at it, include extra debug message as it might be hard to > identify why clipboard did not work. > > Resolves: rhbz#1409854 > Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx> > --- > src/spice-gtk-session.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c > index 0426d8f..315bc26 100644 > --- a/src/spice-gtk-session.c > +++ b/src/spice-gtk-session.c > @@ -940,28 +940,33 @@ static void clipboard_received_text_cb(GtkClipboard *clipboard, > if (self == NULL) > return; > > + selection = get_selection_from_clipboard(self->priv, clipboard); > + g_return_if_fail(selection != -1); > + > if (text == NULL) { > SPICE_DEBUG("Failed to retrieve clipboard text"); > - return; > + goto notify_agent; > } > > g_return_if_fail(SPICE_IS_GTK_SESSION(self)); > > - selection = get_selection_from_clipboard(self->priv, clipboard); > - g_return_if_fail(selection != -1); > - > len = strlen(text); > if (!check_clipboard_size_limits(self, len)) { > - return; > + SPICE_DEBUG("Failed sized limits of clipboard text (%d bytes)", len); > + len = 0; > + goto notify_agent; > } > > /* gtk+ internal utf8 newline is always LF, even on windows */ > conv = fixup_clipboard_text(self, text, &len); > if (!check_clipboard_size_limits(self, len)) { > - g_free(conv); > - return; > + SPICE_DEBUG("Failed sized limits of clipboard text (%d bytes)", len); > + g_clear_pointer(&conv, g_free); > + len = 0; > + goto notify_agent; > } > > +notify_agent: > spice_main_clipboard_selection_notify(self->priv->main, selection, > VD_AGENT_CLIPBOARD_UTF8_TEXT, > (guchar *)(conv ?: text), len); > -- > 2.9.3 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel