[Spice-devel] [PATCH spice-gtk 2/5] Add SPICE_MAX_CLIPBOARD environment variable

Jonathon Jongsma jjongsma at redhat.com
Thu Nov 7 10:03:29 PST 2013


I guess this would work for relatively simple cases (e.g. where the client doesn't change its max-clipboard property after construction), but if you wanted it to be a more reliable override, I'd suggested having a simple internal getter function something like

static int get_max_clipboard(SpiceChannelMain* self)
{
  static gint env = g_get_env(...)
  if (env)
    return env;
  return self->priv->max_clipboard;
}

and then use this everywhere instead of reading the data member directly.  But I don't care too much.

Jonathon


----- Original Message -----
> From: "Marc-André Lureau" <marcandre.lureau at gmail.com>
> To: spice-devel at freedesktop.org
> Sent: Wednesday, November 6, 2013 3:25:09 PM
> Subject: [Spice-devel] [PATCH spice-gtk 2/5] Add SPICE_MAX_CLIPBOARD	environment variable
> 
> From: Marc-André Lureau <marcandre.lureau at redhat.com>
> 
> Allow to easily override default max-clipboard value with environment
> variable.
> ---
>  gtk/channel-main.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/gtk/channel-main.c b/gtk/channel-main.c
> index dbcaff8..75d0281 100644
> --- a/gtk/channel-main.c
> +++ b/gtk/channel-main.c
> @@ -394,6 +394,17 @@ static void spice_main_channel_reset(SpiceChannel
> *channel, gboolean migrating)
>      SPICE_CHANNEL_CLASS(spice_main_channel_parent_class)->channel_reset(channel,
>      migrating);
>  }
>  
> +static void spice_main_constructed(GObject *object)
> +{
> +    SpiceMainChannelPrivate *c = SPICE_MAIN_CHANNEL(object)->priv;
> +
> +    if (g_getenv("SPICE_MAX_CLIPBOARD"))
> +        c->max_clipboard = atoi(g_getenv("SPICE_MAX_CLIPBOARD"));
> +
> +    if (G_OBJECT_CLASS(spice_main_channel_parent_class)->constructed)
> +
> G_OBJECT_CLASS(spice_main_channel_parent_class)->constructed(object);
> +}
> +
>  static void spice_main_channel_class_init(SpiceMainChannelClass *klass)
>  {
>      GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
> @@ -403,6 +414,7 @@ static void
> spice_main_channel_class_init(SpiceMainChannelClass *klass)
>      gobject_class->finalize     = spice_main_channel_finalize;
>      gobject_class->get_property = spice_main_get_property;
>      gobject_class->set_property = spice_main_set_property;
> +    gobject_class->constructed  = spice_main_constructed;
>  
>      channel_class->handle_msg    = spice_main_handle_msg;
>      channel_class->iterate_write = spice_channel_iterate_write;
> --
> 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