<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 19, 2017 at 7:52 AM Matthew Francis <<a href="mailto:mjay.francis@gmail.com">mjay.francis@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Signed-off-by: Matthew Francis <<a href="mailto:mjay.francis@gmail.com" target="_blank">mjay.francis@gmail.com</a>><br>
---<br>
 doc/reference/spice-gtk-sections.txt |  11 ++<br>
 src/channel-main.c                   | 283 +++++++++++++++++++++++++++++++----<br>
 src/channel-main.h                   |  99 ++++++++----<br>
 src/map-file                         |  13 ++<br></blockquote><div><br></div><div>After running "make update-symbol-files":</div><div><br></div><div> diff --git a/src/map-file b/src/map-file<br>index 3f2c158..cdb81c3 100644<br>--- a/src/map-file<br>+++ b/src/map-file<br>@@ -90,8 +90,6 @@ spice_main_channel_file_copy_finish;<br> spice_main_channel_get_type;<br> spice_main_channel_request_mouse_mode;<br> spice_main_channel_send_monitor_config;<br>-spice_main_channel_set_display;<br>-spice_main_channel_set_display_enabled;<br> spice_main_channel_update_display;<br> spice_main_channel_update_display_enabled;<br> spice_main_clipboard_grab;<br>diff --git a/src/spice-glib-sym-file b/src/spice-glib-sym-file<br>index 25be2a8..b19844c 100644<br>--- a/src/spice-glib-sym-file<br>+++ b/src/spice-glib-sym-file<br>@@ -69,8 +69,6 @@ spice_main_channel_file_copy_finish<br> spice_main_channel_get_type<br> spice_main_channel_request_mouse_mode<br> spice_main_channel_send_monitor_config<br>-spice_main_channel_set_display<br>-spice_main_channel_set_display_enabled<br> spice_main_channel_update_display<br> spice_main_channel_update_display_enabled<br> spice_main_clipboard_grab</div><div><br></div><div>Those symbols are not exported.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 src/spice-glib-sym-file              |  13 ++<br>
 src/spice-gtk-session.c              |  28 ++--<br></blockquote><div><br></div><div>There is a triailing space introduced here</div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 src/spice-widget.c                   |  13 +-<br>
 tools/spicy.c                        |  27 ++--<br>
 8 files changed, 396 insertions(+), 91 deletions(-)<br>
<br>
diff --git a/doc/reference/spice-gtk-sections.txt b/doc/reference/spice-gtk-sections.txt<br>
index 0f5ec10..a85df7a 100644<br>
--- a/doc/reference/spice-gtk-sections.txt<br>
+++ b/doc/reference/spice-gtk-sections.txt<br>
@@ -69,20 +69,31 @@ SpiceMainChannelClass<br>
 spice_main_set_display<br>
 spice_main_set_display_enabled<br>
 spice_main_update_display<br>
+spice_main_channel_update_display<br>
 spice_main_update_display_enabled<br>
+spice_main_channel_update_display_enabled<br>
 spice_main_send_monitor_config<br>
+spice_main_channel_send_monitor_config<br>
 spice_main_agent_test_capability<br>
+spice_main_channel_agent_test_capability<br>
 spice_main_request_mouse_mode<br>
+spice_main_channel_request_mouse_mode<br>
 spice_main_clipboard_selection_grab<br>
+spice_main_channel_clipboard_selection_grab<br>
 spice_main_clipboard_selection_notify<br>
+spice_main_channel_clipboard_selection_notify<br>
 spice_main_clipboard_selection_release<br>
+spice_main_channel_clipboard_selection_release<br>
 spice_main_clipboard_selection_request<br>
+spice_main_channel_clipboard_selection_request<br>
 spice_main_clipboard_grab<br>
 spice_main_clipboard_release<br>
 spice_main_clipboard_notify<br>
 spice_main_clipboard_request<br>
 spice_main_file_copy_async<br>
+spice_main_channel_file_copy_async<br>
 spice_main_file_copy_finish<br>
+spice_main_channel_file_copy_finish<br>
 <SUBSECTION Standard><br>
 SPICE_MAIN_CHANNEL<br>
 SPICE_IS_MAIN_CHANNEL<br>
diff --git a/src/channel-main.c b/src/channel-main.c<br>
index dd78cad..3d682d6 100644<br>
--- a/src/channel-main.c<br>
+++ b/src/channel-main.c<br>
@@ -1085,9 +1085,27 @@ static void monitors_align(VDAgentMonConfig *monitors, int nmonitors)<br>
  * spice_main_set_display() and spice_main_set_display_enabled()<br>
  *<br>
  * Returns: %TRUE on success.<br>
+ *<br>
+ * Deprecated: 0.35: use spice_main_channel_send_monitor_config() instead.<br>
  **/<br>
 gboolean spice_main_send_monitor_config(SpiceMainChannel *channel)<br>
 {<br>
+    return spice_main_channel_send_monitor_config(channel);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_send_monitor_config:<br>
+ * @channel: a #SpiceMainChannel<br>
+ *<br>
+ * Send monitors configuration previously set with<br>
+ * spice_main_set_display() and spice_main_set_display_enabled()<br>
+ *<br>
+ * Returns: %TRUE on success.<br>
+ *<br>
+ * Since: 0.35<br>
+ **/<br>
+gboolean spice_main_channel_send_monitor_config(SpiceMainChannel *channel)<br>
+{<br>
     SpiceMainChannelPrivate *c;<br>
     VDAgentMonitorsConfig *mon;<br>
     int i, j, monitors;<br>
@@ -1097,8 +1115,7 @@ gboolean spice_main_send_monitor_config(SpiceMainChannel *channel)<br>
     c = channel->priv;<br>
     g_return_val_if_fail(c->agent_connected, FALSE);<br>
<br>
-    if (spice_main_agent_test_capability(channel,<br>
-                                     VD_AGENT_CAP_SPARSE_MONITORS_CONFIG)) {<br>
+    if (spice_main_channel_agent_test_capability(channel, VD_AGENT_CAP_SPARSE_MONITORS_CONFIG)) {<br>
         monitors = SPICE_N_ELEMENTS(c->display);<br>
     } else {<br>
         monitors = 0;<br>
@@ -1120,8 +1137,8 @@ gboolean spice_main_send_monitor_config(SpiceMainChannel *channel)<br>
     j = 0;<br>
     for (i = 0; i < SPICE_N_ELEMENTS(c->display); i++) {<br>
         if (c->display[i].display_state != DISPLAY_ENABLED) {<br>
-            if (spice_main_agent_test_capability(channel,<br>
-                                     VD_AGENT_CAP_SPARSE_MONITORS_CONFIG))<br>
+            if (spice_main_channel_agent_test_capability(channel,<br>
+                                                         VD_AGENT_CAP_SPARSE_MONITORS_CONFIG))<br>
                 j++;<br>
             continue;<br>
         }<br>
@@ -1497,7 +1514,7 @@ static gboolean timer_set_display(gpointer data)<br>
<br>
     session = spice_channel_get_session(SPICE_CHANNEL(channel));<br>
<br>
-    if (!spice_main_agent_test_capability(channel, VD_AGENT_CAP_SPARSE_MONITORS_CONFIG)) {<br>
+    if (!spice_main_channel_agent_test_capability(channel, VD_AGENT_CAP_SPARSE_MONITORS_CONFIG)) {<br>
         /* ensure we have an explicit monitor configuration at least for<br>
            number of display channels */<br>
         for (i = 0; i < spice_session_get_n_display_channels(session); i++)<br>
@@ -1506,7 +1523,7 @@ static gboolean timer_set_display(gpointer data)<br>
                 return FALSE;<br>
             }<br>
     }<br>
-    spice_main_send_monitor_config(channel);<br>
+    spice_main_channel_send_monitor_config(channel);<br>
<br>
     return FALSE;<br>
 }<br>
@@ -1587,9 +1604,26 @@ static void agent_stopped(SpiceMainChannel *channel)<br>
  * when possible.<br>
  *<br>
  * Since: 0.32<br>
+ * Deprecated: 0.35: use spice_main_channel_request_mouse_mode() instead.<br>
  **/<br>
 void spice_main_request_mouse_mode(SpiceMainChannel *channel, int mode)<br>
 {<br>
+    spice_main_channel_request_mouse_mode(channel, mode);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_request_mouse_mode:<br>
+ * @channel: a %SpiceMainChannel<br>
+ * @mode: a SPICE_MOUSE_MODE<br>
+ *<br>
+ * Request a mouse mode to the server. The server may not be able to<br>
+ * change the mouse mode, but spice-gtk will try to request it<br>
+ * when possible.<br>
+ *<br>
+ * Since: 0.35<br>
+ **/<br>
+void spice_main_channel_request_mouse_mode(SpiceMainChannel *channel, int mode)<br>
+{<br>
     SpiceMsgcMainMouseModeRequest req = {<br>
         .mode = mode,<br>
     };<br>
@@ -1623,7 +1657,7 @@ static void set_mouse_mode(SpiceMainChannel *channel, uint32_t supported, uint32<br>
<br>
     if (c->requested_mouse_mode != c->mouse_mode &&<br>
         c->requested_mouse_mode & supported) {<br>
-        spice_main_request_mouse_mode(SPICE_MAIN_CHANNEL(channel), c->requested_mouse_mode);<br>
+        spice_main_channel_request_mouse_mode(SPICE_MAIN_CHANNEL(channel), c->requested_mouse_mode);<br>
     }<br>
 }<br>
<br>
@@ -2567,9 +2601,27 @@ static void spice_main_handle_msg(SpiceChannel *channel, SpiceMsgIn *msg)<br>
  * Test capability of a remote agent.<br>
  *<br>
  * Returns: %TRUE if @cap (channel kind capability) is available.<br>
+ *<br>
+ * Deprecated: 0.35: use spice_main_channel_agent_test_capability() instead.<br>
  **/<br>
 gboolean spice_main_agent_test_capability(SpiceMainChannel *channel, guint32 cap)<br>
 {<br>
+    return spice_main_channel_agent_test_capability(channel, cap);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_agent_test_capability:<br>
+ * @channel: a #SpiceMainChannel<br>
+ * @cap: an agent capability identifier<br>
+ *<br>
+ * Test capability of a remote agent.<br>
+ *<br>
+ * Returns: %TRUE if @cap (channel kind capability) is available.<br>
+ *<br>
+ * Since: 0.35<br>
+ **/<br>
+gboolean spice_main_channel_agent_test_capability(SpiceMainChannel *channel, guint32 cap)<br>
+{<br>
     g_return_val_if_fail(SPICE_IS_MAIN_CHANNEL(channel), FALSE);<br>
<br>
     return test_agent_cap(channel, cap);<br>
@@ -2591,11 +2643,38 @@ gboolean spice_main_agent_test_capability(SpiceMainChannel *channel, guint32 cap<br>
  * after 1 second without further changes. You can send when you want<br>
  * without delay the new configuration to the remote with<br>
  * spice_main_send_monitor_config()<br>
+ *<br>
+ * Deprecated: 0.35: use spice_main_channel_update_display() instead.<br>
  **/<br>
 void spice_main_update_display(SpiceMainChannel *channel, int id,<br>
                                int x, int y, int width, int height,<br>
                                gboolean update)<br>
 {<br>
+    spice_main_channel_update_display(channel, id, x, y, width, height, update);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_update_display:<br>
+ * @channel: a #SpiceMainChannel<br>
+ * @id: display ID<br>
+ * @x: x position<br>
+ * @y: y position<br>
+ * @width: display width<br>
+ * @height: display height<br>
+ * @update: if %TRUE, update guest resolution after 1sec.<br>
+ *<br>
+ * Update the display @id resolution.<br>
+ *<br>
+ * If @update is %TRUE, the remote configuration will be updated too<br>
+ * after 1 second without further changes. You can send when you want<br>
+ * without delay the new configuration to the remote with<br>
+ * spice_main_send_monitor_config()<br>
+ *<br>
+ * Since: 0.35<br>
+ **/<br>
+void spice_main_channel_update_display(SpiceMainChannel *channel, int id, int x, int y, int width,<br>
+                               int height, gboolean update)<br>
+{<br>
     SpiceMainChannelPrivate *c;<br>
<br>
     g_return_if_fail(channel != NULL);<br>
@@ -2634,11 +2713,13 @@ void spice_main_update_display(SpiceMainChannel *channel, int id,<br>
  *<br>
  * Notify the guest of screen resolution change. The notification is<br>
  * sent 1 second later, if no further changes happen.<br>
+ *<br>
+ * Deprecated: 0.35: use spice_main_channel_update_display() instead.<br>
  **/<br>
 void spice_main_set_display(SpiceMainChannel *channel, int id,<br>
                             int x, int y, int width, int height)<br>
 {<br>
-    spice_main_update_display(channel, id, x, y, width, height, TRUE);<br>
+    spice_main_channel_update_display(channel, id, x, y, width, height, TRUE);<br>
 }<br>
<br>
 /**<br>
@@ -2649,11 +2730,12 @@ void spice_main_set_display(SpiceMainChannel *channel, int id,<br>
  *<br>
  * Grab the guest clipboard, with #VD_AGENT_CLIPBOARD @types.<br>
  *<br>
- * Deprecated: 0.6: use spice_main_clipboard_selection_grab() instead.<br>
+ * Deprecated: 0.6: use spice_main_channel_clipboard_selection_grab() instead.<br>
  **/<br>
 void spice_main_clipboard_grab(SpiceMainChannel *channel, guint32 *types, int ntypes)<br>
 {<br>
-    spice_main_clipboard_selection_grab(channel, VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD, types, ntypes);<br>
+    spice_main_channel_clipboard_selection_grab(channel, VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD,<br>
+                                                types, ntypes);<br>
 }<br>
<br>
 /**<br>
@@ -2666,10 +2748,28 @@ void spice_main_clipboard_grab(SpiceMainChannel *channel, guint32 *types, int nt<br>
  * Grab the guest clipboard, with #VD_AGENT_CLIPBOARD @types.<br>
  *<br>
  * Since: 0.6<br>
+ * Deprecated: 0.35: use spice_main_channel_clipboard_selection_grab() instead.<br>
  **/<br>
 void spice_main_clipboard_selection_grab(SpiceMainChannel *channel, guint selection,<br>
                                          guint32 *types, int ntypes)<br>
 {<br>
+    spice_main_channel_clipboard_selection_grab(channel, selection, types, ntypes);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_clipboard_selection_grab:<br>
+ * @channel: a #SpiceMainChannel<br>
+ * @selection: one of the clipboard #VD_AGENT_CLIPBOARD_SELECTION_*<br>
+ * @types: an array of #VD_AGENT_CLIPBOARD types available in the clipboard<br>
+ * @ntypes: the number of @types<br>
+ *<br>
+ * Grab the guest clipboard, with #VD_AGENT_CLIPBOARD @types.<br>
+ *<br>
+ * Since: 0.35<br>
+ **/<br>
+void spice_main_channel_clipboard_selection_grab(SpiceMainChannel *channel, guint selection,<br>
+                                                 guint32 *types, int ntypes)<br>
+{<br>
     g_return_if_fail(channel != NULL);<br>
     g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel));<br>
<br>
@@ -2684,11 +2784,11 @@ void spice_main_clipboard_selection_grab(SpiceMainChannel *channel, guint select<br>
  * Release the clipboard (for example, when the client loses the<br>
  * clipboard grab): Inform the guest no clipboard data is available.<br>
  *<br>
- * Deprecated: 0.6: use spice_main_clipboard_selection_release() instead.<br>
+ * Deprecated: 0.6: use spice_main_channel_clipboard_selection_release() instead.<br>
  **/<br>
 void spice_main_clipboard_release(SpiceMainChannel *channel)<br>
 {<br>
-    spice_main_clipboard_selection_release(channel, VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD);<br>
+    spice_main_channel_clipboard_selection_release(channel, VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD);<br>
 }<br>
<br>
 /**<br>
@@ -2700,9 +2800,25 @@ void spice_main_clipboard_release(SpiceMainChannel *channel)<br>
  * clipboard grab): Inform the guest no clipboard data is available.<br>
  *<br>
  * Since: 0.6<br>
+ * Deprecated: 0.35: use spice_main_channel_clipboard_selection_release() instead.<br>
  **/<br>
 void spice_main_clipboard_selection_release(SpiceMainChannel *channel, guint selection)<br>
 {<br>
+    spice_main_channel_clipboard_selection_release(channel, selection);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_clipboard_selection_release:<br>
+ * @channel: a #SpiceMainChannel<br>
+ * @selection: one of the clipboard #VD_AGENT_CLIPBOARD_SELECTION_*<br>
+ *<br>
+ * Release the clipboard (for example, when the client loses the<br>
+ * clipboard grab): Inform the guest no clipboard data is available.<br>
+ *<br>
+ * Since: 0.35<br>
+ **/<br>
+void spice_main_channel_clipboard_selection_release(SpiceMainChannel *channel, guint selection)<br>
+{<br>
     g_return_if_fail(channel != NULL);<br>
     g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel));<br>
<br>
@@ -2724,13 +2840,13 @@ void spice_main_clipboard_selection_release(SpiceMainChannel *channel, guint sel<br>
  *<br>
  * Send the clipboard data to the guest.<br>
  *<br>
- * Deprecated: 0.6: use spice_main_clipboard_selection_notify() instead.<br>
+ * Deprecated: 0.6: use spice_main_channel_clipboard_selection_notify() instead.<br>
  **/<br>
 void spice_main_clipboard_notify(SpiceMainChannel *channel,<br>
                                  guint32 type, const guchar *data, size_t size)<br>
 {<br>
-    spice_main_clipboard_selection_notify(channel, VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD,<br>
-                                          type, data, size);<br>
+    spice_main_channel_clipboard_selection_notify(channel, VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD,<br>
+                                                  type, data, size);<br>
 }<br>
<br>
 /**<br>
@@ -2744,10 +2860,29 @@ void spice_main_clipboard_notify(SpiceMainChannel *channel,<br>
  * Send the clipboard data to the guest.<br>
  *<br>
  * Since: 0.6<br>
+ * Deprecated: 0.35: use spice_main_channel_clipboard_selection_notify() instead.<br>
  **/<br>
 void spice_main_clipboard_selection_notify(SpiceMainChannel *channel, guint selection,<br>
                                            guint32 type, const guchar *data, size_t size)<br>
 {<br>
+    spice_main_channel_clipboard_selection_notify(channel, selection, type, data, size);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_clipboard_selection_notify:<br>
+ * @channel: a #SpiceMainChannel<br>
+ * @selection: one of the clipboard #VD_AGENT_CLIPBOARD_SELECTION_*<br>
+ * @type: a #VD_AGENT_CLIPBOARD type<br>
+ * @data: clipboard data<br>
+ * @size: data length in bytes<br>
+ *<br>
+ * Send the clipboard data to the guest.<br>
+ *<br>
+ * Since: 0.35<br>
+ **/<br>
+void spice_main_channel_clipboard_selection_notify(SpiceMainChannel *channel, guint selection,<br>
+                                           guint32 type, const guchar *data, size_t size)<br>
+{<br>
     g_return_if_fail(channel != NULL);<br>
     g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel));<br>
<br>
@@ -2763,11 +2898,12 @@ void spice_main_clipboard_selection_notify(SpiceMainChannel *channel, guint sele<br>
  * Request clipboard data of @type from the guest. The reply is sent<br>
  * through the #SpiceMainChannel::main-clipboard signal.<br>
  *<br>
- * Deprecated: 0.6: use spice_main_clipboard_selection_request() instead.<br>
+ * Deprecated: 0.6: use spice_main_channel_clipboard_selection_request() instead.<br>
  **/<br>
 void spice_main_clipboard_request(SpiceMainChannel *channel, guint32 type)<br>
 {<br>
-    spice_main_clipboard_selection_request(channel, VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD, type);<br>
+    spice_main_channel_clipboard_selection_request(channel, VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD,<br>
+                                                   type);<br>
 }<br>
<br>
 /**<br>
@@ -2780,9 +2916,27 @@ void spice_main_clipboard_request(SpiceMainChannel *channel, guint32 type)<br>
  * through the #SpiceMainChannel::main-clipboard-selection signal.<br>
  *<br>
  * Since: 0.6<br>
+ * Deprecated: 0.35: use spice_main_channel_clipboard_selection_request() instead.<br>
  **/<br>
 void spice_main_clipboard_selection_request(SpiceMainChannel *channel, guint selection, guint32 type)<br>
 {<br>
+    spice_main_channel_clipboard_selection_request(channel, selection, type);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_clipboard_selection_request:<br>
+ * @channel: a #SpiceMainChannel<br>
+ * @selection: one of the clipboard #VD_AGENT_CLIPBOARD_SELECTION_*<br>
+ * @type: a #VD_AGENT_CLIPBOARD type<br>
+ *<br>
+ * Request clipboard data of @type from the guest. The reply is sent<br>
+ * through the #SpiceMainChannel::main-clipboard-selection signal.<br>
+ *<br>
+ * Since: 0.35<br>
+ **/<br>
+void spice_main_channel_clipboard_selection_request(SpiceMainChannel *channel, guint selection,<br>
+                                                    guint32 type)<br>
+{<br>
     g_return_if_fail(channel != NULL);<br>
     g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel));<br>
<br>
@@ -2807,8 +2961,34 @@ void spice_main_clipboard_selection_request(SpiceMainChannel *channel, guint sel<br>
  * the value will be saved and used in the next configuration update.<br>
  *<br>
  * Since: 0.30<br>
+ * Deprecated: 0.35: use spice_main_channel_update_display_enabled() instead.<br>
  **/<br>
-void spice_main_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled, gboolean update)<br>
+void spice_main_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled,<br>
+                                       gboolean update)<br>
+{<br>
+    spice_main_channel_update_display_enabled(channel, id, enabled, update);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_update_display_enabled:<br>
+ * @channel: a #SpiceMainChannel<br>
+ * @id: display ID (if -1: set all displays)<br>
+ * @enabled: wether display @id is enabled<br>
+ * @update: if %TRUE, update guest display state after 1sec.<br>
+ *<br>
+ * When sending monitor configuration to agent guest, if @enabled is %FALSE,<br>
+ * don't set display @id, which the agent translates to disabling the display<br>
+ * id. If @enabled is %TRUE, the monitor will be included in the next monitor<br>
+ * update. Note: this will take effect next time the monitor configuration is<br>
+ * sent.<br>
+ *<br>
+ * If @update is %FALSE, no server update will be triggered by this call, but<br>
+ * the value will be saved and used in the next configuration update.<br>
+ *<br>
+ * Since: 0.35<br>
+ **/<br>
+void spice_main_channel_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled,<br>
+                                               gboolean update)<br>
 {<br>
     SpiceDisplayState display_state = enabled ? DISPLAY_ENABLED : DISPLAY_DISABLED;<br>
     g_return_if_fail(channel != NULL);<br>
@@ -2845,10 +3025,11 @@ void spice_main_update_display_enabled(SpiceMainChannel *channel, int id, gboole<br>
  * configuration is sent.<br>
  *<br>
  * Since: 0.6<br>
+ * Deprecated: 0.35: use spice_main_channel_update_display_enabled() instead.<br>
  **/<br>
 void spice_main_set_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled)<br>
 {<br>
-    spice_main_update_display_enabled(channel, id, enabled, TRUE);<br>
+    spice_main_channel_update_display_enabled(channel, id, enabled, TRUE);<br>
 }<br>
<br>
 static void file_xfer_init_task_async_cb(GObject *obj, GAsyncResult *res, gpointer data)<br>
@@ -3068,6 +3249,35 @@ static void file_transfer_operation_send_progress(SpiceFileTransferTask *xfer_ta<br>
  * @callback: a #GAsyncReadyCallback to call when the request is satisfied<br>
  * @user_data: the data to pass to callback function<br>
  *<br>
+ * See: spice_main_channel_file_copy_async()<br>
+ *<br>
+ * Deprecated: 0.35: use spice_main_channel_file_copy_async() instead.<br>
+ **/<br>
+void spice_main_file_copy_async(SpiceMainChannel *channel,<br>
+                                GFile **sources,<br>
+                                GFileCopyFlags flags,<br>
+                                GCancellable *cancellable,<br>
+                                GFileProgressCallback progress_callback,<br>
+                                gpointer progress_callback_data,<br>
+                                GAsyncReadyCallback callback,<br>
+                                gpointer user_data)<br>
+{<br>
+    spice_main_channel_file_copy_async(channel, sources, flags, cancellable, progress_callback,<br>
+                                       progress_callback_data, callback, user_data);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_file_copy_async:<br>
+ * @channel: a #SpiceMainChannel<br>
+ * @sources: (array zero-terminated=1): a %NULL-terminated array of #GFile objects to be transferred<br>
+ * @flags: set of #GFileCopyFlags<br>
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore<br>
+ * @progress_callback: (allow-none) (scope call): function to callback with<br>
+ *     progress information, or %NULL if progress information is not needed<br>
+ * @progress_callback_data: (closure): user data to pass to @progress_callback<br>
+ * @callback: a #GAsyncReadyCallback to call when the request is satisfied<br>
+ * @user_data: the data to pass to callback function<br>
+ *<br>
  * Copies the file @sources to guest<br>
  *<br>
  * If @cancellable is not %NULL, then the operation can be cancelled by<br>
@@ -3092,15 +3302,16 @@ static void file_transfer_operation_send_progress(SpiceFileTransferTask *xfer_ta<br>
  * progress_callback (above). If you need to monitor the ending of individual<br>
  * files, you can connect to "finished" signal from each SpiceFileTransferTask.<br>
  *<br>
+ * Since: 0.35<br>
  **/<br>
-void spice_main_file_copy_async(SpiceMainChannel *channel,<br>
-                                GFile **sources,<br>
-                                GFileCopyFlags flags,<br>
-                                GCancellable *cancellable,<br>
-                                GFileProgressCallback progress_callback,<br>
-                                gpointer progress_callback_data,<br>
-                                GAsyncReadyCallback callback,<br>
-                                gpointer user_data)<br>
+void spice_main_channel_file_copy_async(SpiceMainChannel *channel,<br>
+                                        GFile **sources,<br>
+                                        GFileCopyFlags flags,<br>
+                                        GCancellable *cancellable,<br>
+                                        GFileProgressCallback progress_callback,<br>
+                                        gpointer progress_callback_data,<br>
+                                        GAsyncReadyCallback callback,<br>
+                                        gpointer user_data)<br>
 {<br>
     SpiceMainChannelPrivate *c;<br>
     FileTransferOperation *xfer_op;<br>
@@ -3172,6 +3383,24 @@ gboolean spice_main_file_copy_finish(SpiceMainChannel *channel,<br>
                                      GAsyncResult *result,<br>
                                      GError **error)<br>
 {<br>
+    return spice_main_channel_file_copy_finish(channel, result, error);<br>
+}<br>
+<br>
+/**<br>
+ * spice_main_channel_file_copy_finish:<br>
+ * @channel: a #SpiceMainChannel<br>
+ * @result: a #GAsyncResult.<br>
+ * @error: a #GError, or %NULL<br>
+ *<br>
+ * Finishes copying the file started with<br>
+ * spice_main_file_copy_async().<br>
+ *<br>
+ * Returns: a %TRUE on success, %FALSE on error.<br>
+ **/<br>
+gboolean spice_main_channel_file_copy_finish(SpiceMainChannel *channel,<br>
+                                             GAsyncResult *result,<br>
+                                             GError **error)<br>
+{<br>
     GTask *task = G_TASK(result);<br>
<br>
     g_return_val_if_fail(SPICE_IS_MAIN_CHANNEL(channel), FALSE);<br>
diff --git a/src/channel-main.h b/src/channel-main.h<br>
index 2bb6d10..7650a03 100644<br>
--- a/src/channel-main.h<br>
+++ b/src/channel-main.h<br>
@@ -71,44 +71,81 @@ struct _SpiceMainChannelClass {<br>
<br>
 GType spice_main_channel_get_type(void);<br>
<br>
-void spice_main_set_display(SpiceMainChannel *channel, int id,<br>
-                            int x, int y, int width, int height);<br>
-void spice_main_update_display(SpiceMainChannel *channel, int id,<br>
-                               int x, int y, int width, int height, gboolean update);<br>
+void spice_main_channel_update_display(SpiceMainChannel *channel, int id, int x, int y, int width,<br>
+                                       int height, gboolean update);<br>
+void spice_main_channel_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled,<br>
+                                               gboolean update);<br>
+gboolean spice_main_channel_send_monitor_config(SpiceMainChannel *channel);<br>
+<br>
+void spice_main_channel_clipboard_selection_grab(SpiceMainChannel *channel, guint selection,<br>
+                                                 guint32 *types, int ntypes);<br>
+void spice_main_channel_clipboard_selection_release(SpiceMainChannel *channel, guint selection);<br>
+void spice_main_channel_clipboard_selection_notify(SpiceMainChannel *channel, guint selection,<br>
+                                                   guint32 type, const guchar *data, size_t size);<br>
+void spice_main_channel_clipboard_selection_request(SpiceMainChannel *channel, guint selection,<br>
+                                                    guint32 type);<br>
+<br>
+gboolean spice_main_channel_agent_test_capability(SpiceMainChannel *channel, guint32 cap);<br>
+void spice_main_channel_file_copy_async(SpiceMainChannel *channel,<br>
+                                        GFile **sources,<br>
+                                        GFileCopyFlags flags,<br>
+                                        GCancellable *cancellable,<br>
+                                        GFileProgressCallback progress_callback,<br>
+                                        gpointer progress_callback_data,<br>
+                                        GAsyncReadyCallback callback,<br>
+                                        gpointer user_data);<br>
+<br>
+gboolean spice_main_channel_file_copy_finish(SpiceMainChannel *channel,<br>
+                                             GAsyncResult *result,<br>
+                                             GError **error);<br>
+<br>
+void spice_main_channel_request_mouse_mode(SpiceMainChannel *channel, int mode);<br>
+<br>
+#ifndef SPICE_DISABLE_DEPRECATED<br>
+G_DEPRECATED_FOR(spice_main_channel_clipboard_selection_grab)<br>
+void spice_main_clipboard_grab(SpiceMainChannel *channel, guint32 *types, int ntypes);<br>
+G_DEPRECATED_FOR(spice_main_channel_clipboard_selection_release)<br>
+void spice_main_clipboard_release(SpiceMainChannel *channel);<br>
+G_DEPRECATED_FOR(spice_main_channel_clipboard_selection_notify)<br>
+void spice_main_clipboard_notify(SpiceMainChannel *channel, guint32 type, const guchar *data, size_t size);<br>
+G_DEPRECATED_FOR(spice_main_channel_clipboard_selection_request)<br>
+void spice_main_clipboard_request(SpiceMainChannel *channel, guint32 type);<br>
+<br>
+G_DEPRECATED_FOR(spice_main_channel_set_display)<br>
+void spice_main_set_display(SpiceMainChannel *channel, int id,int x, int y, int width, int height);<br>
+G_DEPRECATED_FOR(spice_main_update_display)<br>
+void spice_main_update_display(SpiceMainChannel *channel, int id, int x, int y, int width,<br>
+                               int height, gboolean update);<br>
+G_DEPRECATED_FOR(spice_main_channel_set_display_enabled)<br>
 void spice_main_set_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled);<br>
-void spice_main_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled, gboolean update);<br>
+G_DEPRECATED_FOR(spice_main_channel_update_display_enabled)<br>
+void spice_main_update_display_enabled(SpiceMainChannel *channel, int id, gboolean enabled,<br>
+                                       gboolean update);<br>
+G_DEPRECATED_FOR(spice_main_channel_send_monitor_config)<br>
 gboolean spice_main_send_monitor_config(SpiceMainChannel *channel);<br>
-<br>
-void spice_main_clipboard_selection_grab(SpiceMainChannel *channel, guint selection, guint32 *types, int ntypes);<br>
+G_DEPRECATED_FOR(spice_main_channel_clipboard_selection_grab)<br>
+void spice_main_clipboard_selection_grab(SpiceMainChannel *channel, guint selection, guint32 *types,<br>
+                                         int ntypes);<br>
+G_DEPRECATED_FOR(spice_main_channel_clipboard_selection_release)<br>
 void spice_main_clipboard_selection_release(SpiceMainChannel *channel, guint selection);<br>
-void spice_main_clipboard_selection_notify(SpiceMainChannel *channel, guint selection, guint32 type, const guchar *data, size_t size);<br>
-void spice_main_clipboard_selection_request(SpiceMainChannel *channel, guint selection, guint32 type);<br>
-<br>
+G_DEPRECATED_FOR(spice_main_channel_clipboard_selection_notify)<br>
+void spice_main_clipboard_selection_notify(SpiceMainChannel *channel, guint selection, guint32 type,<br>
+                                           const guchar *data, size_t size);<br>
+G_DEPRECATED_FOR(spice_main_channel_clipboard_selection_request)<br>
+void spice_main_clipboard_selection_request(SpiceMainChannel *channel, guint selection,<br>
+                                            guint32 type);<br>
+G_DEPRECATED_FOR(spice_main_channel_agent_test_capability)<br>
 gboolean spice_main_agent_test_capability(SpiceMainChannel *channel, guint32 cap);<br>
-void spice_main_file_copy_async(SpiceMainChannel *channel,<br>
-                                GFile **sources,<br>
-                                GFileCopyFlags flags,<br>
-                                GCancellable *cancellable,<br>
-                                GFileProgressCallback progress_callback,<br>
-                                gpointer progress_callback_data,<br>
-                                GAsyncReadyCallback callback,<br>
+G_DEPRECATED_FOR(spice_main_channel_file_copy_async)<br>
+void spice_main_file_copy_async(SpiceMainChannel *channel, GFile **sources, GFileCopyFlags flags,<br>
+                                GCancellable *cancellable, GFileProgressCallback progress_callback,<br>
+                                gpointer progress_callback_data, GAsyncReadyCallback callback,<br>
                                 gpointer user_data);<br>
-<br>
-gboolean spice_main_file_copy_finish(SpiceMainChannel *channel,<br>
-                                     GAsyncResult *result,<br>
+G_DEPRECATED_FOR(spice_main_channel_file_copy_finish)<br>
+gboolean spice_main_file_copy_finish(SpiceMainChannel *channel, GAsyncResult *result,<br>
                                      GError **error);<br>
-<br>
+G_DEPRECATED_FOR(spice_main_channel_request_mouse_mode)<br>
 void spice_main_request_mouse_mode(SpiceMainChannel *channel, int mode);<br>
-<br>
-#ifndef SPICE_DISABLE_DEPRECATED<br>
-G_DEPRECATED_FOR(spice_main_clipboard_selection_grab)<br>
-void spice_main_clipboard_grab(SpiceMainChannel *channel, guint32 *types, int ntypes);<br>
-G_DEPRECATED_FOR(spice_main_clipboard_selection_release)<br>
-void spice_main_clipboard_release(SpiceMainChannel *channel);<br>
-G_DEPRECATED_FOR(spice_main_clipboard_selection_notify)<br>
-void spice_main_clipboard_notify(SpiceMainChannel *channel, guint32 type, const guchar *data, size_t size);<br>
-G_DEPRECATED_FOR(spice_main_clipboard_selection_request)<br>
-void spice_main_clipboard_request(SpiceMainChannel *channel, guint32 type);<br>
 #endif<br>
<br>
 G_END_DECLS<br>
diff --git a/src/map-file b/src/map-file<br>
index 14e8ac6..3f2c158 100644<br>
--- a/src/map-file<br>
+++ b/src/map-file<br>
@@ -80,7 +80,20 @@ spice_inputs_motion;<br>
 spice_inputs_position;<br>
 spice_inputs_set_key_locks;<br>
 spice_main_agent_test_capability;<br>
+spice_main_channel_agent_test_capability;<br>
+spice_main_channel_clipboard_selection_grab;<br>
+spice_main_channel_clipboard_selection_notify;<br>
+spice_main_channel_clipboard_selection_release;<br>
+spice_main_channel_clipboard_selection_request;<br>
+spice_main_channel_file_copy_async;<br>
+spice_main_channel_file_copy_finish;<br>
 spice_main_channel_get_type;<br>
+spice_main_channel_request_mouse_mode;<br>
+spice_main_channel_send_monitor_config;<br>
+spice_main_channel_set_display;<br>
+spice_main_channel_set_display_enabled;<br>
+spice_main_channel_update_display;<br>
+spice_main_channel_update_display_enabled;<br>
 spice_main_clipboard_grab;<br>
 spice_main_clipboard_notify;<br>
 spice_main_clipboard_release;<br>
diff --git a/src/spice-glib-sym-file b/src/spice-glib-sym-file<br>
index 38e87e0..25be2a8 100644<br>
--- a/src/spice-glib-sym-file<br>
+++ b/src/spice-glib-sym-file<br>
@@ -59,7 +59,20 @@ spice_inputs_motion<br>
 spice_inputs_position<br>
 spice_inputs_set_key_locks<br>
 spice_main_agent_test_capability<br>
+spice_main_channel_agent_test_capability<br>
+spice_main_channel_clipboard_selection_grab<br>
+spice_main_channel_clipboard_selection_notify<br>
+spice_main_channel_clipboard_selection_release<br>
+spice_main_channel_clipboard_selection_request<br>
+spice_main_channel_file_copy_async<br>
+spice_main_channel_file_copy_finish<br>
 spice_main_channel_get_type<br>
+spice_main_channel_request_mouse_mode<br>
+spice_main_channel_send_monitor_config<br>
+spice_main_channel_set_display<br>
+spice_main_channel_set_display_enabled<br>
+spice_main_channel_update_display<br>
+spice_main_channel_update_display_enabled<br>
 spice_main_clipboard_grab<br>
 spice_main_clipboard_notify<br>
 spice_main_clipboard_release<br>
diff --git a/src/spice-gtk-session.c b/src/spice-gtk-session.c<br>
index 6a53bf5..4e3393b 100644<br>
--- a/src/spice-gtk-session.c<br>
+++ b/src/spice-gtk-session.c<br>
@@ -671,8 +671,8 @@ static void clipboard_get_targets(GtkClipboard *clipboard,<br>
<br>
     s->clip_grabbed[selection] = TRUE;<br>
<br>
-    if (spice_main_agent_test_capability(s->main, VD_AGENT_CAP_CLIPBOARD_BY_DEMAND))<br>
-        spice_main_clipboard_selection_grab(s->main, selection, types, num_types);<br>
+    if (spice_main_channel_agent_test_capability(s->main, VD_AGENT_CAP_CLIPBOARD_BY_DEMAND))<br>
+        spice_main_channel_clipboard_selection_grab(s->main, selection, types, num_types);<br>
<br>
     /* Sending a grab causes the agent to do an implicit release */<br>
     s->nclip_targets[selection] = 0;<br>
@@ -696,8 +696,8 @@ static void clipboard_owner_change(GtkClipboard        *clipboard,<br>
<br>
     if (s->clip_grabbed[selection]) {<br>
         s->clip_grabbed[selection] = FALSE;<br>
-        if (spice_main_agent_test_capability(s->main, VD_AGENT_CAP_CLIPBOARD_BY_DEMAND))<br>
-            spice_main_clipboard_selection_release(s->main, selection);<br>
+        if (spice_main_channel_agent_test_capability(s->main, VD_AGENT_CAP_CLIPBOARD_BY_DEMAND))<br>
+            spice_main_channel_clipboard_selection_release(s->main, selection);<br>
     }<br>
<br>
     switch (event->reason) {<br>
@@ -741,7 +741,7 @@ static void clipboard_got_from_guest(SpiceMainChannel *main, guint selection,<br>
     if (atom2agent[ri->info].vdagent == VD_AGENT_CLIPBOARD_UTF8_TEXT) {<br>
         /* on windows, gtk+ would already convert to LF endings, but<br>
            not on unix */<br>
-        if (spice_main_agent_test_capability(s->main, VD_AGENT_CAP_GUEST_LINEEND_CRLF)) {<br>
+        if (spice_main_channel_agent_test_capability(s->main, VD_AGENT_CAP_GUEST_LINEEND_CRLF)) {<br>
             conv = spice_dos2unix((gchar*)data, size);<br>
             size = strlen(conv);<br>
         }<br>
@@ -801,8 +801,8 @@ static void clipboard_get(GtkClipboard *clipboard,<br>
                                      G_CALLBACK(clipboard_agent_connected),<br>
                                      &ri);<br>
<br>
-    spice_main_clipboard_selection_request(s->main, selection,<br>
-                                           atom2agent[info].vdagent);<br>
+    spice_main_channel_clipboard_selection_request(s->main, selection,<br>
+                                                   atom2agent[info].vdagent);<br>
<br>
<br>
     g_object_get(s->main, "agent-connected", &agent_connected, NULL);<br>
@@ -921,7 +921,8 @@ static char *fixup_clipboard_text(SpiceGtkSession *self, const char *text, int *<br>
 {<br>
     char *conv = NULL;<br>
<br>
-    if (spice_main_agent_test_capability(self->priv->main, VD_AGENT_CAP_GUEST_LINEEND_CRLF)) {<br>
+    if (spice_main_channel_agent_test_capability(self->priv->main,<br>
+                                                 VD_AGENT_CAP_GUEST_LINEEND_CRLF)) {<br>
         conv = spice_unix2dos(text, *len);<br>
         *len = strlen(conv);<br>
     } else {<br>
@@ -976,10 +977,10 @@ static void clipboard_received_text_cb(GtkClipboard *clipboard,<br>
<br>
     data = (const guchar *) (conv != NULL ? conv : text);<br>
 notify_agent:<br>
-    spice_main_clipboard_selection_notify(self->priv->main, selection,<br>
-                                          VD_AGENT_CLIPBOARD_UTF8_TEXT,<br>
-                                          data,<br>
-                                          (data != NULL) ? len : 0);<br>
+    spice_main_channel_clipboard_selection_notify(self->priv->main, selection,<br>
+                                                  VD_AGENT_CLIPBOARD_UTF8_TEXT,<br>
+                                                  data,<br>
+                                                  (data != NULL) ? len : 0);<br>
     g_free(conv);<br>
 }<br>
<br>
@@ -1032,8 +1033,7 @@ static void clipboard_received_cb(GtkClipboard *clipboard,<br>
      */<br>
     g_warn_if_fail(type != VD_AGENT_CLIPBOARD_UTF8_TEXT);<br>
<br>
-    spice_main_clipboard_selection_notify(s->main, selection, type,<br>
-                                          data, len);<br>
+    spice_main_channel_clipboard_selection_notify(s->main, selection, type, data, len);<br>
 }<br>
<br>
 static gboolean clipboard_request(SpiceMainChannel *main, guint selection,<br>
diff --git a/src/spice-widget.c b/src/spice-widget.c<br>
index 22d25c9..5365222 100644<br>
--- a/src/spice-widget.c<br>
+++ b/src/spice-widget.c<br>
@@ -256,8 +256,7 @@ static void update_ready(SpiceDisplay *display)<br>
      * application will manage the state of the displays.<br>
      */<br>
     if (d->resize_guest_enable) {<br>
-        spice_main_update_display_enabled(d->main, get_display_id(display),<br>
-                                          ready, TRUE);<br>
+        spice_main_channel_update_display_enabled(d->main, get_display_id(display), ready, TRUE);<br>
     }<br>
<br>
     if (d->ready == ready)<br>
@@ -514,7 +513,7 @@ static void file_transfer_callback(GObject *source_object,<br>
     SpiceMainChannel *channel = SPICE_MAIN_CHANNEL(source_object);<br>
     GError *error = NULL;<br>
<br>
-    if (spice_main_file_copy_finish(channel, result, &error))<br>
+    if (spice_main_channel_file_copy_finish(channel, result, &error))<br>
         return;<br>
<br>
     if (error != NULL && error->message != NULL)<br>
@@ -556,8 +555,8 @@ static void drag_data_received_callback(SpiceDisplay *self,<br>
     }<br>
     g_strfreev(file_urls);<br>
<br>
-    spice_main_file_copy_async(d->main, files, 0, NULL, NULL,<br>
-                               NULL, file_transfer_callback, NULL);<br>
+    spice_main_channel_file_copy_async(d->main, files, 0, NULL, NULL, NULL, file_transfer_callback,<br>
+                                       NULL);<br>
     for (i = 0; i < n_files; i++) {<br>
         g_object_unref(files[i]);<br>
     }<br>
@@ -1257,8 +1256,8 @@ static void recalc_geometry(GtkWidget *widget)<br>
                   d->ww, d->wh, zoom);<br>
<br>
     if (d->resize_guest_enable)<br>
-        spice_main_set_display(d->main, get_display_id(display),<br>
-                               d->area.x, d->area.y, d->ww / zoom, d->wh / zoom);<br>
+        spice_main_channel_update_display(d->main, get_display_id(display),<br>
+                                          d->area.x, d->area.y, d->ww / zoom, d->wh / zoom, TRUE);<br>
 }<br>
<br>
 /* ---------------------------------------------------------------- */<br>
diff --git a/tools/spicy.c b/tools/spicy.c<br>
index 6ff6c9e..088e034 100644<br>
--- a/tools/spicy.c<br>
+++ b/tools/spicy.c<br>
@@ -373,7 +373,7 @@ static void menu_cb_mouse_mode(GtkAction *action, void *data)<br>
     else<br>
         mode = SPICE_MOUSE_MODE_CLIENT;<br>
<br>
-    spice_main_request_mouse_mode(cmain, mode);<br>
+    spice_main_channel_request_mouse_mode(cmain, mode);<br>
 }<br>
<br>
 #ifdef USE_USBREDIR<br>
@@ -614,14 +614,17 @@ static void menu_cb_resize_to(GtkAction *action G_GNUC_UNUSED,<br>
<br>
     gtk_widget_show_all(dialog);<br>
     if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_APPLY) {<br>
-        spice_main_update_display_enabled(win->conn->main, win->id + win->monitor_id, TRUE, FALSE);<br>
-        spice_main_set_display(win->conn->main,<br>
-                               win->id + win->monitor_id,<br>
-                               gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin_x)),<br>
-                               gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin_y)),<br>
-                               gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin_width)),<br>
-                               gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin_height)));<br>
-        spice_main_send_monitor_config(win->conn->main);<br>
+        spice_main_channel_update_display_enabled(win->conn->main, win->id + win->monitor_id, TRUE,<br>
+                                                  FALSE);<br>
+        spice_main_channel_update_display(<br>
+            win->conn->main,<br>
+            win->id + win->monitor_id,<br>
+            gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin_x)),<br>
+            gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin_y)),<br>
+            gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin_width)),<br>
+            gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin_height)),<br>
+            TRUE);<br>
+        spice_main_channel_send_monitor_config(win->conn->main);<br>
     }<br>
     gtk_widget_destroy(dialog);<br>
 }<br>
@@ -1437,10 +1440,10 @@ static void del_window(spice_connection *conn, SpiceWindow *win)<br>
     g_debug("del display monitor %d:%d", win->id, win->monitor_id);<br>
     conn->wins[win->id * CHANNELID_MAX + win->monitor_id] = NULL;<br>
     if (win->id > 0)<br>
-        spice_main_set_display_enabled(conn->main, win->id, FALSE);<br>
+        spice_main_channel_update_display_enabled(conn->main, win->id, FALSE, TRUE);<br>
     else<br>
-        spice_main_set_display_enabled(conn->main, win->monitor_id, FALSE);<br>
-    spice_main_send_monitor_config(conn->main);<br>
+        spice_main_channel_update_display_enabled(conn->main, win->monitor_id, FALSE, TRUE);<br>
+    spice_main_channel_send_monitor_config(conn->main);<br>
<br>
     destroy_spice_window(win);<br>
 }<br>
--<br>
2.7.4<br>
<br>
_______________________________________________<br>
Spice-devel mailing list<br>
<a href="mailto:Spice-devel@lists.freedesktop.org" target="_blank">Spice-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/spice-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/spice-devel</a><br>
</blockquote></div></div><div dir="ltr">-- <br></div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Marc-André Lureau<br></div></div>