--- gtk/spice-session-priv.h | 5 +++++ gtk/spice-session.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/gtk/spice-session-priv.h b/gtk/spice-session-priv.h index c24ef8e..c904066 100644 --- a/gtk/spice-session-priv.h +++ b/gtk/spice-session-priv.h @@ -72,6 +72,10 @@ struct _SpiceSessionPrivate { GStrv disable_effects; gint color_depth; + /* Whether to block ctrl-alt-del or to pass it from the client to the + * guest OS */ + gboolean disable_ctrlaltdel; + int connection_id; int protocol; SpiceChannel *cmain; /* weak reference */ @@ -131,6 +135,7 @@ const gchar* spice_session_get_host(SpiceSession *session); const gchar* spice_session_get_cert_subject(SpiceSession *session); const gchar* spice_session_get_ciphers(SpiceSession *session); const gchar* spice_session_get_ca_file(SpiceSession *session); +gboolean spice_session_is_ctrlaltdel_disabled(SpiceSession *session); void spice_session_set_caches_hints(SpiceSession *session, uint32_t pci_ram_size, diff --git a/gtk/spice-session.c b/gtk/spice-session.c index 995b2ed..6fffaf4 100644 --- a/gtk/spice-session.c +++ b/gtk/spice-session.c @@ -103,6 +103,7 @@ enum { PROP_GLZ_WINDOW_SIZE, PROP_UUID, PROP_NAME, + PROP_DISABLE_CTRLALTDEL, }; /* signals */ @@ -464,6 +465,9 @@ static void spice_session_get_property(GObject *gobject, case PROP_UUID: g_value_set_pointer(value, s->uuid); break; + case PROP_DISABLE_CTRLALTDEL: + g_value_set_boolean(value, s->disable_ctrlaltdel); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, pspec); break; @@ -575,6 +579,9 @@ static void spice_session_set_property(GObject *gobject, case PROP_GLZ_WINDOW_SIZE: s->glz_window_size = g_value_get_int(value); break; + case PROP_DISABLE_CTRLALTDEL: + s->disable_ctrlaltdel = g_value_get_boolean(value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, pspec); break; @@ -1043,6 +1050,20 @@ static void spice_session_class_init(SpiceSessionClass *klass) G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + /** + * SpiceSession:disable-ctrlaltdel: + * + * Disable transmission of Ctrl+Alt+Del to guest OS + * Since: 0.13 + **/ + g_object_class_install_property + (gobject_class, PROP_DISABLE_CTRLALTDEL, + g_param_spec_boolean("disable-ctrlaltdel", "Disable Ctrl+Alt+Del", + "Whether Ctrl+Alt+Del combo should be disabled", + FALSE, + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + g_type_class_add_private(klass, sizeof(SpiceSessionPrivate)); } @@ -1803,6 +1824,15 @@ const gchar* spice_session_get_ca_file(SpiceSession *session) } G_GNUC_INTERNAL +gboolean spice_session_is_ctrlaltdel_disabled(SpiceSession *session) +{ + SpiceSessionPrivate *s = SPICE_SESSION_GET_PRIVATE(session); + + g_return_val_if_fail(s != NULL, FALSE); + return s->disable_ctrlaltdel; +} + +G_GNUC_INTERNAL void spice_session_get_caches(SpiceSession *session, display_cache **images, display_cache **palettes, -- 1.7.10.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel