[virt-tools-list] [PATCH virt-viewer v2 2/3] display: Return early and remove a block

Pavel Grunt pgrunt at redhat.com
Wed Feb 3 08:08:16 UTC 2016


---
 src/virt-viewer-display.c | 39 ++++++++++++++++++---------------------
 1 file changed, 18 insertions(+), 21 deletions(-)

diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c
index 72ec56a..4bfa29b 100644
--- a/src/virt-viewer-display.c
+++ b/src/virt-viewer-display.c
@@ -511,37 +511,34 @@ virt_viewer_display_size_allocate(GtkWidget *widget,
     g_debug("Allocated %dx%d", allocation->width, allocation->height);
     gtk_widget_set_allocation(widget, allocation);
 
-    if (priv->desktopWidth == 0 ||
-        priv->desktopHeight == 0)
+    if (priv->desktopWidth == 0 || priv->desktopHeight == 0 ||
+        child == NULL || !gtk_widget_get_visible(child))
 #if !GTK_CHECK_VERSION(3, 0, 0)
         goto end;
 #else
         return;
 #endif
+    border_width = gtk_container_get_border_width(GTK_CONTAINER(display));
 
-    desktopAspect = (double)priv->desktopWidth / (double)priv->desktopHeight;
+    width  = MAX(1, allocation->width - 2 * border_width);
+    height = MAX(1, allocation->height - 2 * border_width);
 
-    if (child && gtk_widget_get_visible(child)) {
-        border_width = gtk_container_get_border_width(GTK_CONTAINER(display));
-
-        width  = MAX(1, allocation->width - 2 * border_width);
-        height = MAX(1, allocation->height - 2 * border_width);
-        actualAspect = (double)width / (double)height;
+    desktopAspect = (double) priv->desktopWidth / (double) priv->desktopHeight;
+    actualAspect = (double) width / (double) height;
 
-        if (actualAspect > desktopAspect) {
-            child_allocation.width = round(height * desktopAspect);
-            child_allocation.height = height;
-        } else {
-            child_allocation.width = width;
-            child_allocation.height = round(width / desktopAspect);
-        }
+    if (actualAspect > desktopAspect) {
+        child_allocation.width = round(height * desktopAspect);
+        child_allocation.height = height;
+    } else {
+        child_allocation.width = width;
+        child_allocation.height = round(width / desktopAspect);
+    }
 
-        child_allocation.x = 0.5 * (width - child_allocation.width) + allocation->x + border_width;
-        child_allocation.y = 0.5 * (height - child_allocation.height) + allocation->y + border_width;
+    child_allocation.x = 0.5 * (width - child_allocation.width) + allocation->x + border_width;
+    child_allocation.y = 0.5 * (height - child_allocation.height) + allocation->y + border_width;
 
-        g_debug("Child allocate %dx%d", child_allocation.width, child_allocation.height);
-        gtk_widget_size_allocate(child, &child_allocation);
-    }
+    g_debug("Child allocate %dx%d", child_allocation.width, child_allocation.height);
+    gtk_widget_size_allocate(child, &child_allocation);
 
 #if !GTK_CHECK_VERSION(3, 0, 0)
 end:
-- 
2.5.0




More information about the virt-tools-list mailing list