[virt-tools-list] [PATCH virt-viewer 2/2] fullscreen-auto-conf: Use display id according to monitor-mapping

Pavel Grunt pgrunt at redhat.com
Wed Jun 3 12:44:34 UTC 2015


---
 src/virt-viewer-session-spice.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c
index 9c72245..2a036b7 100644
--- a/src/virt-viewer-session-spice.c
+++ b/src/virt-viewer-session-spice.c
@@ -836,6 +836,7 @@ virt_viewer_session_spice_fullscreen_auto_conf(VirtViewerSessionSpice *self)
     gint i;
     GList *initial_displays, *l;
     guint ndisplays;
+    gint *display_ids;
 
     /* only do auto-conf once at startup. Avoid repeating auto-conf later due to
      * agent disconnection/re-connection, etc */
@@ -869,10 +870,12 @@ virt_viewer_session_spice_fullscreen_auto_conf(VirtViewerSessionSpice *self)
     ndisplays = g_list_length(initial_displays);
     g_debug("Performing full screen auto-conf, %u host monitors", ndisplays);
     displays = g_new0(GdkRectangle, ndisplays);
+    display_ids = g_new0(gint, ndisplays);
 
     for (ndisplays = 0, l = initial_displays; l != NULL; l = l->next) {
         GdkRectangle* rect = &displays[ndisplays];
-        gint j = virt_viewer_app_get_initial_monitor_for_display(app, GPOINTER_TO_INT(l->data));
+        display_ids[ndisplays] = GPOINTER_TO_INT(l->data);
+        gint j = virt_viewer_app_get_initial_monitor_for_display(app, display_ids[ndisplays]);
         if (j == -1)
             continue;
 
@@ -886,12 +889,13 @@ virt_viewer_session_spice_fullscreen_auto_conf(VirtViewerSessionSpice *self)
     for (i = 0; i < ndisplays; i++) {
         GdkRectangle *rect = &displays[i];
 
-        spice_main_set_display(cmain, i, rect->x, rect->y, rect->width, rect->height);
-        spice_main_set_display_enabled(cmain, i, TRUE);
+        spice_main_set_display(cmain, display_ids[i], rect->x, rect->y, rect->width, rect->height);
+        spice_main_set_display_enabled(cmain, display_ids[i], TRUE);
         g_debug("Set SPICE display %d to (%d,%d)-(%dx%d)",
-                  i, rect->x, rect->y, rect->width, rect->height);
+                display_ids[i], rect->x, rect->y, rect->width, rect->height);
     }
     g_free(displays);
+    g_free(display_ids);
 
     spice_main_send_monitor_config(cmain);
     self->priv->did_auto_conf = TRUE;
-- 
2.4.2




More information about the virt-tools-list mailing list