Allow to enable/disable a monitor without setting the timer to sendi the current configuration. --- doc/reference/spice-gtk-sections.txt | 2 ++ gtk/channel-main.c | 33 +++++++++++++++++++++++++++++---- gtk/channel-main.h | 2 ++ gtk/map-file | 1 + gtk/spice-glib-sym-file | 1 + 5 files changed, 35 insertions(+), 4 deletions(-) diff --git a/doc/reference/spice-gtk-sections.txt b/doc/reference/spice-gtk-sections.txt index 5d7b176..4733557 100644 --- a/doc/reference/spice-gtk-sections.txt +++ b/doc/reference/spice-gtk-sections.txt @@ -63,6 +63,8 @@ SpiceMainChannelClass <SUBSECTION> spice_main_set_display spice_main_set_display_enabled +spice_main_update_display +spice_main_update_display_enabled spice_main_send_monitor_config spice_main_agent_test_capability spice_main_clipboard_selection_grab diff --git a/gtk/channel-main.c b/gtk/channel-main.c index c132ffa..33fca06 100644 --- a/gtk/channel-main.c +++ b/gtk/channel-main.c @@ -2600,19 +2600,21 @@ void spice_main_clipboard_selection_request(SpiceMainChannel *channel, guint sel } /** - * spice_main_set_display_enabled: + * spice_main_update_display_enabled: * @channel: a #SpiceMainChannel * @id: display ID (if -1: set all displays) * @enabled: wether display @id is enabled + * @update: if %TRUE, update guest resolution after 1sec. * * When sending monitor configuration to agent guest, don't set * display @id, which the agent translates to disabling the display * id. Note: this will take effect next time the monitor * configuration is sent. * - * Since: 0.6 + * Since: 0.29 **/ -void spice_main_set_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled) +void spice_main_update_display_enabled(SpiceMainChannel *channel, int id, + gboolean enabled, gboolean update) { g_return_if_fail(channel != NULL); g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel)); @@ -2634,7 +2636,30 @@ void spice_main_set_display_enabled(SpiceMainChannel *channel, int id, gboolean c->display[id].enabled_set = TRUE; } - update_display_timer(channel, 1); + if (update) + update_display_timer(channel, 1); +} + +/** + * spice_main_set_display_enabled: + * @channel: a #SpiceMainChannel + * @id: display ID (if -1: set all displays) + * @enabled: wether display @id is enabled + * + * When sending monitor configuration to agent guest, don't set + * display @id, which the agent translates to disabling the display + * id. Note: this will take effect next time the monitor + * configuration is sent. + * + * Since: 0.6 + **/ +void spice_main_set_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled) +{ + g_return_if_fail(channel != NULL); + g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel)); + g_return_if_fail(id >= -1); + + spice_main_update_display_enabled(channel, id, enabled, TRUE); } static void file_xfer_completed(SpiceFileXferTask *task, GError *error) diff --git a/gtk/channel-main.h b/gtk/channel-main.h index 3e4fc42..daee1ab 100644 --- a/gtk/channel-main.h +++ b/gtk/channel-main.h @@ -72,6 +72,8 @@ void spice_main_set_display(SpiceMainChannel *channel, int id, void spice_main_update_display(SpiceMainChannel *channel, int id, int x, int y, int width, int height, gboolean update); void spice_main_set_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled); +void spice_main_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled, gboolean update); + gboolean spice_main_send_monitor_config(SpiceMainChannel *channel); void spice_main_clipboard_selection_grab(SpiceMainChannel *channel, guint selection, guint32 *types, int ntypes); diff --git a/gtk/map-file b/gtk/map-file index d5a073f..a9abc61 100644 --- a/gtk/map-file +++ b/gtk/map-file @@ -71,6 +71,7 @@ spice_main_send_monitor_config; spice_main_set_display; spice_main_set_display_enabled; spice_main_update_display; +spice_main_update_display_enabled; spice_playback_channel_get_type; spice_playback_channel_set_delay; spice_port_channel_get_type; diff --git a/gtk/spice-glib-sym-file b/gtk/spice-glib-sym-file index 3a8da93..1d62716 100644 --- a/gtk/spice-glib-sym-file +++ b/gtk/spice-glib-sym-file @@ -48,6 +48,7 @@ spice_main_send_monitor_config spice_main_set_display spice_main_set_display_enabled spice_main_update_display +spice_main_update_display_enabled spice_playback_channel_get_type spice_playback_channel_set_delay spice_port_channel_get_type -- 2.1.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel