Commit 6865fe71 authored by Jon Turney's avatar Jon Turney

hw/xwin: Avoid artefacts when resizing a window

Fill the area outside the current window size with black, rather than
leaking framebuffer contents or leaving it undrawn.
parent ebcea16e
......@@ -916,6 +916,30 @@ winBltExposedWindowRegionShadowGDI(ScreenPtr pScreen, WindowPtr pWin)
}
}
/* If part of the invalidated region is outside the window (which can happen
if the native window is being re-sized), fill that area with black */
if (ps.rcPaint.right > ps.rcPaint.left + pWin->drawable.width) {
BitBlt(hdcUpdate,
ps.rcPaint.left + pWin->drawable.width,
ps.rcPaint.top,
ps.rcPaint.right - (ps.rcPaint.left + pWin->drawable.width),
ps.rcPaint.bottom - ps.rcPaint.top,
NULL,
0, 0,
BLACKNESS);
}
if (ps.rcPaint.bottom > ps.rcPaint.top + pWin->drawable.height) {
BitBlt(hdcUpdate,
ps.rcPaint.left,
ps.rcPaint.top + pWin->drawable.height,
ps.rcPaint.right - ps.rcPaint.left,
ps.rcPaint.bottom - (ps.rcPaint.top + pWin->drawable.height),
NULL,
0, 0,
BLACKNESS);
}
/* EndPaint frees the DC */
EndPaint(hWnd, &ps);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment