[Spice-devel] [PATCH spice-gtk 1/2] gtk-session: ignore destroy of outdated main channel

Hans de Goede hdegoede at redhat.com
Wed Jan 18 06:28:29 PST 2012


Hi,

Both look good to me, ack-series.

Regards,

Hans


On 01/18/2012 03:12 PM, Marc-André Lureau wrote:
> This solves clipboard sharing not working with a password protected
> server, since new main channel are created for each connection
> attempt.
> ---
>   gtk/spice-gtk-session.c |    3 ++-
>   1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/gtk/spice-gtk-session.c b/gtk/spice-gtk-session.c
> index 32848fa..a7357f8 100644
> --- a/gtk/spice-gtk-session.c
> +++ b/gtk/spice-gtk-session.c
> @@ -743,6 +743,7 @@ static void channel_new(SpiceSession *session, SpiceChannel *channel,
>       SpiceGtkSessionPrivate *s = self->priv;
>
>       if (SPICE_IS_MAIN_CHANNEL(channel)) {
> +        SPICE_DEBUG("Changing main channel from %p to %p", s->main, channel);
>           s->main = SPICE_MAIN_CHANNEL(channel);
>           g_signal_connect(channel, "main-clipboard-selection-grab",
>                            G_CALLBACK(clipboard_grab), self);
> @@ -762,7 +763,7 @@ static void channel_destroy(SpiceSession *session, SpiceChannel *channel,
>       SpiceGtkSessionPrivate *s = self->priv;
>       guint i;
>
> -    if (SPICE_IS_MAIN_CHANNEL(channel)) {
> +    if (SPICE_IS_MAIN_CHANNEL(channel)&&  SPICE_MAIN_CHANNEL(channel) == s->main) {
>           s->main = NULL;
>           for (i = 0; i<  CLIPBOARD_LAST; ++i) {
>               if (s->clipboard_by_guest[i]) {


More information about the Spice-devel mailing list