String property defining key sequence for disabling inputs --- gtk/spice-session-priv.h | 3 +++ gtk/spice-session.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/gtk/spice-session-priv.h b/gtk/spice-session-priv.h index da43866..60e032e 100644 --- a/gtk/spice-session-priv.h +++ b/gtk/spice-session-priv.h @@ -111,6 +111,7 @@ struct _SpiceSessionPrivate { uint32_t display_channels_count; guint8 uuid[16]; gchar *name; + gchar *disable_inputs_sequence; /* associated objects */ SpiceAudio *audio_manager; @@ -173,6 +174,8 @@ guint32 spice_session_get_playback_latency(SpiceSession *session); void spice_session_sync_playback_latency(SpiceSession *session); const gchar* spice_session_get_shared_dir(SpiceSession *session); void spice_session_set_shared_dir(SpiceSession *session, const gchar *dir); +const gchar* spice_session_get_disable_inputs_sequence(SpiceSession *session); +void spice_session_set_disable_inputs_sequence(SpiceSession *session, const gchar *sequence); G_END_DECLS diff --git a/gtk/spice-session.c b/gtk/spice-session.c index 88bcacd..65427b4 100644 --- a/gtk/spice-session.c +++ b/gtk/spice-session.c @@ -112,6 +112,7 @@ enum { PROP_PROXY, PROP_SECURE_CHANNELS, PROP_SHARED_DIR, + PROP_DISABLE_INPUTS_SEQUENCE, PROP_USERNAME }; @@ -228,6 +229,7 @@ spice_session_finalize(GObject *gobject) g_strfreev(s->disable_effects); g_strfreev(s->secure_channels); g_free(s->shared_dir); + g_free(s->disable_inputs_sequence); g_clear_pointer(&s->images, cache_unref); glz_decoder_window_destroy(s->glz_window); @@ -512,6 +514,9 @@ static void spice_session_get_property(GObject *gobject, case PROP_SHARED_DIR: g_value_set_string(value, spice_session_get_shared_dir(session)); break; + case PROP_DISABLE_INPUTS_SEQUENCE: + g_value_set_string(value, spice_session_get_disable_inputs_sequence(session)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, pspec); break; @@ -641,6 +646,9 @@ static void spice_session_set_property(GObject *gobject, case PROP_SHARED_DIR: spice_session_set_shared_dir(session, g_value_get_string(value)); break; + case PROP_DISABLE_INPUTS_SEQUENCE: + spice_session_set_disable_inputs_sequence(session, g_value_get_string(value)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, pspec); break; @@ -1216,6 +1224,22 @@ static void spice_session_class_init(SpiceSessionClass *klass) G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); + /** + * SpiceSession:disable-inputs-sequence: + * + * Key sequence for disabling inputs + * + * Since: 0.27 + **/ + g_object_class_install_property + (gobject_class, PROP_DISABLE_INPUTS_SEQUENCE, + g_param_spec_string("disable-inputs-sequence", + "Disable inputs sequence", + "Disable inputs sequence", + NULL, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + g_type_class_add_private(klass, sizeof(SpiceSessionPrivate)); } @@ -2253,6 +2277,27 @@ void spice_session_set_shared_dir(SpiceSession *session, const gchar *dir) s->shared_dir = g_strdup(dir); } +G_GNUC_INTERNAL +const gchar* spice_session_get_disable_inputs_sequence(SpiceSession *session) +{ + SpiceSessionPrivate *s = session->priv; + + g_return_val_if_fail(s != NULL, NULL); + + return s->disable_inputs_sequence; +} + +G_GNUC_INTERNAL +void spice_session_set_disable_inputs_sequence(SpiceSession *session, const gchar *sequence) +{ + SpiceSessionPrivate *s = session->priv; + + g_return_if_fail(sequence != NULL); + g_return_if_fail(s != NULL); + + g_free(s->disable_inputs_sequence); + s->disable_inputs_sequence = g_strdup(sequence); +} /** * spice_session_get_proxy_uri: * @session: a #SpiceSession -- 1.9.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel