From 346f35c87b2631817a2f16be9618f18a98c87567 Mon Sep 17 00:00:00 2001 From: Marc-André Lureau Date: Wed, 5 Dec 2012 18:31:41 +0100 Subject: Use monitor geometry, not screen size In a recent commit, 3bb6f5ec805ecfe78eba6d4d98e3ffcab195273a, I introduced a regression: going fullscreen would no longer match client and guest resolution correctly. A GdkScreen is not necessarily the physical screen monitor size. Lookup the physical monitor size using gdk_screen_get_monitor_geometry(). Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=881020 --- src/virt-viewer-display-spice.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/virt-viewer-display-spice.c') diff --git a/src/virt-viewer-display-spice.c b/src/virt-viewer-display-spice.c index 753e369..8ad770a 100644 --- a/src/virt-viewer-display-spice.c +++ b/src/virt-viewer-display-spice.c @@ -197,9 +197,13 @@ virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self, return; if (self->priv->auto_resize == AUTO_RESIZE_FULLSCREEN) { + GdkRectangle monitor; GdkScreen *screen = gtk_widget_get_screen(GTK_WIDGET(self)); - dw = gdk_screen_get_width(screen); - dh = gdk_screen_get_height(screen); + GdkWindow *window = gtk_widget_get_root_window(GTK_WIDGET(self)); + int n = gdk_screen_get_monitor_at_window(screen, window); + gdk_screen_get_monitor_geometry(screen, n, &monitor); + dw = monitor.width; + dh = monitor.height; } if (virt_viewer_display_get_zoom(VIRT_VIEWER_DISPLAY(self))) { -- cgit