Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> --- gtk/channel-main.c | 20 ++++++++++++++------ spice-common | 2 +- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/gtk/channel-main.c b/gtk/channel-main.c index 706c119..dfd2245 100644 --- a/gtk/channel-main.c +++ b/gtk/channel-main.c @@ -1019,11 +1019,15 @@ gboolean spice_main_send_monitor_config(SpiceMainChannel *channel) c = channel->priv; g_return_val_if_fail(c->agent_connected, FALSE); - monitors = 0; - /* FIXME: fix MonitorConfig to be per display */ - for (i = 0; i < SPICE_N_ELEMENTS(c->display); i++) { - if (c->display[i].enabled) - monitors += 1; + if (spice_main_agent_test_capability(channel, + VD_AGENT_CAP_SPARSE_MONITORS_CONFIG)) { + monitors = SPICE_N_ELEMENTS(c->display); + } else { + monitors = 0; + for (i = 0; i < SPICE_N_ELEMENTS(c->display); i++) { + if (c->display[i].enabled) + monitors += 1; + } } size = sizeof(VDAgentMonitorsConfig) + sizeof(VDAgentMonConfig) * monitors; @@ -1036,8 +1040,12 @@ gboolean spice_main_send_monitor_config(SpiceMainChannel *channel) j = 0; for (i = 0; i < SPICE_N_ELEMENTS(c->display); i++) { - if (!c->display[i].enabled) + if (!c->display[i].enabled) { + if (spice_main_agent_test_capability(channel, + VD_AGENT_CAP_SPARSE_MONITORS_CONFIG)) + j++; continue; + } mon->monitors[j].depth = c->display_color_depth ? c->display_color_depth : 32; mon->monitors[j].width = c->display[j].width; mon->monitors[j].height = c->display[j].height; diff --git a/spice-common b/spice-common index 81f40cc..8a10919 160000 --- a/spice-common +++ b/spice-common @@ -1 +1 @@ -Subproject commit 81f40cca5f930bb256da62760859ac802f11b3a7 +Subproject commit 8a10919658950aa600bd5fcaf12c28b026fd70ad -- 1.8.0.2 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel