summaryrefslogtreecommitdiffstats
path: root/src/virt-viewer-display-spice.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-12-05 18:31:41 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-12-07 14:55:27 +0100
commit346f35c87b2631817a2f16be9618f18a98c87567 (patch)
treebd7baae93d61fb94e9e4f486206a9a8af6918361 /src/virt-viewer-display-spice.c
parent3b810b7768ef3a64c693b6b0a33d5b2af013d34b (diff)
downloadvirt-viewer-346f35c87b2631817a2f16be9618f18a98c87567.tar.gz
virt-viewer-346f35c87b2631817a2f16be9618f18a98c87567.tar.xz
virt-viewer-346f35c87b2631817a2f16be9618f18a98c87567.zip
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
Diffstat (limited to 'src/virt-viewer-display-spice.c')
-rw-r--r--src/virt-viewer-display-spice.c8
1 files changed, 6 insertions, 2 deletions
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))) {