diff options
-rw-r--r-- | doc/reference/spice-gtk-sections.txt | 1 | ||||
-rw-r--r-- | src/channel-main.c | 40 | ||||
-rw-r--r-- | src/channel-main.h | 1 | ||||
-rw-r--r-- | src/map-file | 1 | ||||
-rw-r--r-- | src/spice-glib-sym-file | 1 |
5 files changed, 36 insertions, 8 deletions
diff --git a/doc/reference/spice-gtk-sections.txt b/doc/reference/spice-gtk-sections.txt index 5d7b176..2f3e09e 100644 --- a/doc/reference/spice-gtk-sections.txt +++ b/doc/reference/spice-gtk-sections.txt @@ -63,6 +63,7 @@ SpiceMainChannelClass <SUBSECTION> spice_main_set_display spice_main_set_display_enabled +spice_main_update_display_enabled spice_main_send_monitor_config spice_main_agent_test_capability spice_main_clipboard_selection_grab diff --git a/src/channel-main.c b/src/channel-main.c index 42c9a65..03e407e 100644 --- a/src/channel-main.c +++ b/src/channel-main.c @@ -2788,19 +2788,24 @@ 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 display state 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. + * When sending monitor configuration to agent guest, if @enabled is %FALSE, + * don't set display @id, which the agent translates to disabling the display + * id. If @enabled is %TRUE, the monitor will be included in the next monitor + * update. Note: this will take effect next time the monitor configuration is + * sent. * - * Since: 0.6 + * If @update is %FALSE, no server update will be triggered by this call, but + * the value will be saved and used in the next configuration update. + * + * Since: 0.30 **/ -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) { SpiceDisplayState display_state = enabled ? DISPLAY_ENABLED : DISPLAY_DISABLED; g_return_if_fail(channel != NULL); @@ -2821,7 +2826,26 @@ void spice_main_set_display_enabled(SpiceMainChannel *channel, int id, gboolean c->display[id].display_state = display_state; } - 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) +{ + spice_main_update_display_enabled(channel, id, enabled, TRUE); } static void file_xfer_completed(SpiceFileXferTask *task, GError *error) diff --git a/src/channel-main.h b/src/channel-main.h index 3e4fc42..86bb46b 100644 --- a/src/channel-main.h +++ b/src/channel-main.h @@ -72,6 +72,7 @@ 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/src/map-file b/src/map-file index d5a073f..a9abc61 100644 --- a/src/map-file +++ b/src/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/src/spice-glib-sym-file b/src/spice-glib-sym-file index 3a8da93..1d62716 100644 --- a/src/spice-glib-sym-file +++ b/src/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 |