OSDN Git Service

ui/cocoa: Cope with first surface being same as initial window size
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 23 Jun 2014 09:35:22 +0000 (10:35 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Sun, 29 Jun 2014 21:00:33 +0000 (22:00 +0100)
Do the recalculation of the content dimensions in switchSurface if the
current cdx is zero as well as if the new surface is a different size to
the current window. This catches the case where the first surface registered
happens to be 640x480 (our current window size), and fixes a bug where we
would always display a black screen until the first surface of a different
size was registered.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1403516125-14568-2-git-send-email-peter.maydell@linaro.org

ui/cocoa.m

index f20fd1f..a270a46 100644 (file)
@@ -404,7 +404,11 @@ QemuCocoaView *cocoaView;
 
     int w = surface_width(surface);
     int h = surface_height(surface);
-    bool isResize = (w != screen.width || h != screen.height);
+    /* cdx == 0 means this is our very first surface, in which case we need
+     * to recalculate the content dimensions even if it happens to be the size
+     * of the initial empty window.
+     */
+    bool isResize = (w != screen.width || h != screen.height || cdx == 0.0);
 
     int oldh = screen.height;
     if (isResize) {