--- src/virt-viewer-display.c | 6 +++++- src/virt-viewer-window.c | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c index 43ec45e..a954671 100644 --- a/src/virt-viewer-display.c +++ b/src/virt-viewer-display.c @@ -403,6 +403,10 @@ virt_viewer_display_size_allocate(GtkWidget *widget, DEBUG_LOG("Allocated %dx%d", allocation->width, allocation->height); gtk_widget_set_allocation(widget, allocation); + if (priv->desktopWidth == 0 || + priv->desktopHeight == 0) + goto end; + desktopAspect = (double)priv->desktopWidth / (double)priv->desktopHeight; if (child && gtk_widget_get_visible(child)) { @@ -427,7 +431,7 @@ virt_viewer_display_size_allocate(GtkWidget *widget, gtk_widget_size_allocate(child, &child_allocation); } - +end: /* This unsets the size request, so that the user can * manually resize the window smaller again */ diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c index c873ebc..4887e28 100644 --- a/src/virt-viewer-window.c +++ b/src/virt-viewer-window.c @@ -433,6 +433,11 @@ virt_viewer_window_resize(VirtViewerWindow *self) (screen, gtk_widget_get_window(priv->window)), &fullscreen); + g_return_if_fail(fullscreen.height > 128); + g_return_if_fail(fullscreen.width > 128); + g_return_if_fail(desktopWidth > 0); + g_return_if_fail(desktopHeight > 0); + desktopAspect = (double)desktopWidth / (double)desktopHeight; screenAspect = (double)(fullscreen.width - 128) / (double)(fullscreen.height - 128); -- 1.7.10.4