The only way this can be called currently is via the main/system coroutine. Remove display timer if any. --- gtk/channel-main.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gtk/channel-main.c b/gtk/channel-main.c index d7830ae..0c15dfa 100644 --- a/gtk/channel-main.c +++ b/gtk/channel-main.c @@ -916,8 +916,6 @@ static void monitors_align(VDAgentMonConfig *monitors, int nmonitors) * * Returns: %TRUE on success. **/ -/* any context: the message is not flushed immediately, - you can wakeup() the channel coroutine or send_msg_queue() */ gboolean spice_main_send_monitor_config(SpiceMainChannel *channel) { SpiceMainChannelPrivate *c; @@ -966,6 +964,12 @@ gboolean spice_main_send_monitor_config(SpiceMainChannel *channel) agent_msg_queue(channel, VD_AGENT_MONITORS_CONFIG, size, mon); free(mon); + spice_channel_wakeup(SPICE_CHANNEL(channel), FALSE); + if (c->timer_id != 0) { + g_source_remove(c->timer_id); + c->timer_id = 0; + } + return TRUE; } @@ -1862,7 +1866,6 @@ static gboolean timer_set_display(gpointer data) c->timer_id = 0; if (c->agent_connected) spice_main_send_monitor_config(SPICE_MAIN_CHANNEL(channel)); - spice_channel_wakeup(channel, FALSE); return false; } -- 1.7.10.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel