The delay before the press event is sent to the server if the key is
kept pressed. If the key is released within that time, that delay is
ignored and a single key-press-release event will be sent.
---
gtk/spice-widget-priv.h | 1 +
gtk/spice-widget.c | 27 +++++++++++++++++++++++++++
2 files changed, 28 insertions(+)
diff --git a/gtk/spice-widget-priv.h b/gtk/spice-widget-priv.h
index 87cf34e..97c6489 100644
--- a/gtk/spice-widget-priv.h
+++ b/gtk/spice-widget-priv.h
@@ -112,6 +112,7 @@ struct _SpiceDisplayPrivate {
#ifdef WIN32
HHOOK keyboard_hook;
#endif
+ guint keypress_delay;
gint zoom_level;
};
diff --git a/gtk/spice-widget.c b/gtk/spice-widget.c
index cbd5f4b..014fdaa 100644
--- a/gtk/spice-widget.c
+++ b/gtk/spice-widget.c
@@ -103,6 +103,7 @@ enum {
PROP_DISABLE_INPUTS,
PROP_ZOOM_LEVEL,
PROP_MONITOR_ID,
+ PROP_KEYPRESS_DELAY,
PROP_READY
};
@@ -179,6 +180,9 @@ static void spice_display_get_property(GObject *object,
case PROP_READY:
g_value_set_boolean(value, d->ready);
break;
+ case PROP_KEYPRESS_DELAY:
+ g_value_set_uint(value, d->keypress_delay);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -347,6 +351,9 @@ static void spice_display_set_property(GObject *object,
d->zoom_level = g_value_get_int(value);
scaling_updated(display);
break;
+ case PROP_KEYPRESS_DELAY:
+ d->keypress_delay = g_value_get_uint(value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -1561,6 +1568,26 @@ static void spice_display_class_init(SpiceDisplayClass
*klass)
G_PARAM_STATIC_STRINGS));
/**
+ * SpiceDisplay:keypress-delay:
+ *
+ * Delay in ms of non-modifiers key press events. If the key is
+ * released before this delay, a single press & release event is
+ * sent to the server. If the key is pressed longer than the
+ * keypress-delay, the server will receive the delayed press
+ * event, and a following release event when the key is released.
+ *
+ * Since: 0.13
+ **/
+ g_object_class_install_property
+ (gobject_class, PROP_KEYPRESS_DELAY,
+ g_param_spec_uint("keypress-delay", "Keypress delay",
+ "Keypress delay",
+ 0, G_MAXUINT, 100,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
* SpiceDisplay:disable-inputs:
*
* Disable all keyboard & mouse inputs.
--
1.7.10.4
_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel