The property is used to enable sending client's keyboard description to the guest. --- gtk/spice-gtk-session.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gtk/spice-gtk-session.c b/gtk/spice-gtk-session.c index 60cf899..d955252 100644 --- a/gtk/spice-gtk-session.c +++ b/gtk/spice-gtk-session.c @@ -64,6 +64,7 @@ struct _SpiceGtkSessionPrivate { gboolean auto_usbredir_enable; int auto_usbredir_reqs; gboolean pointer_grabbed; + gboolean auto_keyboard_sync_enable; }; /** @@ -117,6 +118,7 @@ enum { PROP_AUTO_CLIPBOARD, PROP_AUTO_USBREDIR, PROP_POINTER_GRABBED, + PROP_AUTO_KEYBOARD_SYNC, }; static guint32 get_keyboard_lock_modifiers(void) @@ -325,6 +327,9 @@ static void spice_gtk_session_get_property(GObject *gobject, case PROP_POINTER_GRABBED: g_value_set_boolean(value, s->pointer_grabbed); break; + case PROP_AUTO_KEYBOARD_SYNC: + g_value_set_boolean(value, s->auto_keyboard_sync_enable); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, pspec); break; @@ -372,6 +377,9 @@ static void spice_gtk_session_set_property(GObject *gobject, } break; } + case PROP_AUTO_KEYBOARD_SYNC: + s->auto_keyboard_sync_enable = g_value_get_boolean(value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(gobject, prop_id, pspec); break; @@ -460,6 +468,23 @@ static void spice_gtk_session_class_init(SpiceGtkSessionClass *klass) G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + /** + * SpiceGtkSession:auto-keyboard-sync: + * + * Automatically send the keyboard description to the guest + * + * Since: 0.27 + **/ + g_object_class_install_property + (gobject_class, PROP_AUTO_KEYBOARD_SYNC, + g_param_spec_boolean("auto-keyboard-sync", + "Auto keyboard synchronization", + "Automatically send the keyboard description to the guest", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS)); + g_type_class_add_private(klass, sizeof(SpiceGtkSessionPrivate)); } @@ -1257,6 +1282,9 @@ void spice_gtk_session_sync_keyboard_layout(SpiceGtkSession *self) gchar *keyboard_description; gboolean agent_connected; + if (!s->auto_keyboard_sync_enable) + return; + keyboard_description = get_keyboard_description(); if (keyboard_description == NULL) return; -- 1.9.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel