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.
This commit is contained in:
		
							parent
							
								
									ebcea16e71
								
							
						
					
					
						commit
						6865fe7147
					
				| 
						 | 
					@ -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 frees the DC */
 | 
				
			||||||
    EndPaint(hWnd, &ps);
 | 
					    EndPaint(hWnd, &ps);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue