[Spice-devel] [PATCH spice-gtk 5/5] main: send max-clipboard to agent

Jonathon Jongsma jjongsma at redhat.com
Wed Nov 6 15:11:36 PST 2013


Is this meant to be a one-time-only configuration value?  Or should we also send it down whenever the 'max-clipboard' property changes?


----- Original Message -----
> From: "Marc-André Lureau" <marcandre.lureau at gmail.com>
> To: spice-devel at freedesktop.org
> Sent: Wednesday, November 6, 2013 3:25:12 PM
> Subject: [Spice-devel] [PATCH spice-gtk 5/5] main: send max-clipboard to	agent
> 
> From: Marc-André Lureau <marcandre.lureau at redhat.com>
> 
> Send configured max-clipboard size to the agent, after receiving agent
> capabilities.
> 
> See also spice-protocol patch description:
> http://lists.freedesktop.org/archives/spice-devel/2013-November/015254.html
> ---
>  gtk/channel-main.c | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/gtk/channel-main.c b/gtk/channel-main.c
> index 2887208..d4a0246 100644
> --- a/gtk/channel-main.c
> +++ b/gtk/channel-main.c
> @@ -196,6 +196,7 @@ static const char *agent_caps[] = {
>      [ VD_AGENT_CAP_SPARSE_MONITORS_CONFIG ] = "sparse monitors",
>      [ VD_AGENT_CAP_GUEST_LINEEND_LF    ] = "line-end lf",
>      [ VD_AGENT_CAP_GUEST_LINEEND_CRLF  ] = "line-end crlf",
> +    [ VD_AGENT_CAP_MAX_CLIPBOARD       ] = "max-clipboard",
>  };
>  #define NAME(_a, _i) ((_i) < SPICE_N_ELEMENTS(_a) ? (_a[(_i)] ?: "?") : "?")
>  
> @@ -1210,6 +1211,16 @@ static void agent_display_config(SpiceMainChannel
> *channel)
>  
>  /* any context: the message is not flushed immediately,
>     you can wakeup() the channel coroutine or send_msg_queue() */
> +static void agent_max_clipboard(SpiceMainChannel *channel)
> +{
> +    SpiceMainChannelPrivate *c = channel->priv;
> +    VDAgentMaxClipboard msg = { .max = c->max_clipboard};
> +
> +    agent_msg_queue(channel, VD_AGENT_MAX_CLIPBOARD,
> sizeof(VDAgentMaxClipboard), &msg);
> +}
> +
> +/* any context: the message is not flushed immediately,
> +   you can wakeup() the channel coroutine or send_msg_queue() */
>  static void agent_announce_caps(SpiceMainChannel *channel)
>  {
>      SpiceMainChannelPrivate *c = channel->priv;
> @@ -1849,9 +1860,15 @@ static void main_agent_handle_msg(SpiceChannel
> *channel,
>          if (test_agent_cap(self, VD_AGENT_CAP_DISPLAY_CONFIG) &&
>              !c->agent_display_config_sent) {
>              agent_display_config(self);
> -            agent_send_msg_queue(self);
>              c->agent_display_config_sent = true;
>          }
> +
> +        if (test_agent_cap(self, VD_AGENT_CAP_MAX_CLIPBOARD)) {
> +            agent_max_clipboard(self);
> +        }
> +
> +        agent_send_msg_queue(self);
> +
>          break;
>      }
>      case VD_AGENT_CLIPBOARD:
> --
> 1.8.3.1
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
> 


More information about the Spice-devel mailing list