[virt-tools-list] [PATCH 2/5] virt-viewer-display-spice: Use real monitor coordinates in fullscreen

Hans de Goede hdegoede at redhat.com
Wed Feb 6 13:39:20 UTC 2013


Now that we pass the real monitor coordinates, tell spice-gtk to use them,
rather then to use the passed coordinates as input for its automatic monitor
alignment. This fixes ie monitors in a 2x2 grid, showing up as a 4x1
configuration in the guest.

Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
 src/virt-viewer-display-spice.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/virt-viewer-display-spice.c b/src/virt-viewer-display-spice.c
index 063188a..d15f415 100644
--- a/src/virt-viewer-display-spice.c
+++ b/src/virt-viewer-display-spice.c
@@ -190,6 +190,7 @@ virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self,
     guint zoom = 100;
     guint nth;
     gint x = 0, y = 0;
+    gboolean disable_display_position = TRUE;
 
     if (virt_viewer_display_get_auto_resize(VIRT_VIEWER_DISPLAY(self)) == FALSE)
         return;
@@ -203,6 +204,7 @@ virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self,
         int n = gdk_screen_get_monitor_at_window(screen,
                                      gtk_widget_get_window(GTK_WIDGET(self)));
         gdk_screen_get_monitor_geometry(screen, n, &monitor);
+        disable_display_position = FALSE;
         x = monitor.x;
         y = monitor.y;
         dw = monitor.width;
@@ -218,9 +220,14 @@ virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self,
 
     g_object_get(self, "nth-display", &nth, NULL);
 
-    if (self->priv->auto_resize != AUTO_RESIZE_NEVER)
+    if (self->priv->auto_resize != AUTO_RESIZE_NEVER) {
+        g_object_set(get_main(VIRT_VIEWER_DISPLAY(self)),
+                     "disable-display-position", disable_display_position,
+                     "disable-display-align", !disable_display_position,
+                     NULL);
         spice_main_set_display(get_main(VIRT_VIEWER_DISPLAY(self)),
                                nth, x, y, dw, dh);
+    }
     if (self->priv->auto_resize == AUTO_RESIZE_FULLSCREEN)
         self->priv->auto_resize = AUTO_RESIZE_NEVER;
 }
-- 
1.8.1




More information about the virt-tools-list mailing list