[Spice-devel] [PATCH spice-gtk 23/25] Handle MonitorsConfig::max_allowed
Marc-André Lureau
marcandre.lureau at gmail.com
Thu Jul 12 15:29:20 PDT 2012
---
gtk/channel-display.c | 27 +++++++++++++++++++++++++--
spice-common | 2 +-
2 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/gtk/channel-display.c b/gtk/channel-display.c
index b701d1b..02650e4 100644
--- a/gtk/channel-display.c
+++ b/gtk/channel-display.c
@@ -71,6 +71,7 @@ struct _SpiceDisplayChannelPrivate {
gboolean mark;
guint mark_false_event_id;
GArray *monitors;
+ guint monitors_max;
#ifdef WIN32
HDC dc;
#endif
@@ -83,7 +84,8 @@ enum {
PROP_0,
PROP_WIDTH,
PROP_HEIGHT,
- PROP_MONITORS
+ PROP_MONITORS,
+ PROP_MONITORS_MAX
};
enum {
@@ -176,6 +178,10 @@ static void spice_display_get_property(GObject *object,
g_value_set_boxed(value, c->monitors);
break;
}
+ case PROP_MONITORS_MAX: {
+ g_value_set_uint(value, c->monitors_max);
+ break;
+ }
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -255,6 +261,22 @@ static void spice_display_channel_class_init(SpiceDisplayChannelClass *klass)
G_PARAM_STATIC_STRINGS));
/**
+ * SpiceDisplayChannel:monitors-max:
+ *
+ * The maximum number of monitors the server or guest supports.
+ *
+ * Since: 0.13
+ */
+ g_object_class_install_property
+ (gobject_class, PROP_MONITORS_MAX,
+ g_param_spec_uint("monitors-max",
+ "Max display monitors",
+ "The maximum number of monitors",
+ 1, G_MAXINT16, 1,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
* SpiceDisplayChannel::display-primary-create:
* @display: the #SpiceDisplayChannel that emitted the signal
* @format: %SPICE_SURFACE_FMT_32_xRGB or %SPICE_SURFACE_FMT_16_555;
@@ -1478,8 +1500,9 @@ static void display_handle_monitors_config(SpiceChannel *channel, SpiceMsgIn *in
g_return_if_fail(config != NULL);
g_return_if_fail(config->count > 0);
- SPICE_DEBUG("monitors config: n: %d", config->count);
+ SPICE_DEBUG("monitors config: n: %d/%d", config->count, config->max_allowed);
+ c->monitors_max = config->max_allowed;
c->monitors = g_array_set_size(c->monitors, config->count);
for (i = 0; i < config->count; i++) {
diff --git a/spice-common b/spice-common
index 6a9d40f..6bcb4ff 160000
--- a/spice-common
+++ b/spice-common
@@ -1 +1 @@
-Subproject commit 6a9d40f7f03756599f4a3880c212a379be9e784e
+Subproject commit 6bcb4fff0df7bbc8e708cc9c6022efff06a81ace
--
1.7.10.4
More information about the Spice-devel
mailing list