mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-15 00:44:19 +09:00
[gdi] fix handling of empty regions
Do not abort if an empty update region is found, ignore it.
This commit is contained in:
@@ -101,7 +101,7 @@ BOOL gdi_ClipCoords(HGDI_DC hdc, INT32* x, INT32* y, INT32* w, INT32* h, INT32*
|
||||
if (!gdi_RgnToRect(hdc->clip, &clip))
|
||||
return TRUE;
|
||||
if (!gdi_CRgnToRect(0, 0, hBmp->width, hBmp->height, &bmp))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
|
||||
if (clip.left < bmp.left)
|
||||
clip.left = bmp.left;
|
||||
@@ -123,7 +123,7 @@ BOOL gdi_ClipCoords(HGDI_DC hdc, INT32* x, INT32* y, INT32* w, INT32* h, INT32*
|
||||
}
|
||||
|
||||
if (!gdi_CRgnToRect(*x, *y, *w, *h, &coords))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
|
||||
if (coords.right >= clip.left && coords.left <= clip.right && coords.bottom >= clip.top &&
|
||||
coords.top <= clip.bottom)
|
||||
|
||||
@@ -655,6 +655,16 @@ inline BOOL gdi_InvalidateRegion(HGDI_DC hdc, INT32 x, INT32 y, INT32 w, INT32 h
|
||||
if (!gdi_SetRgn(&cinvalid[hdc->hwnd->ninvalid++], x, y, w, h))
|
||||
return FALSE;
|
||||
|
||||
if (!gdi_CRgnToRect(x, y, w, h, &rgn))
|
||||
{
|
||||
invalid->x = 0;
|
||||
invalid->y = 0;
|
||||
invalid->w = 0;
|
||||
invalid->h = 0;
|
||||
invalid->null = TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (invalid->null)
|
||||
{
|
||||
invalid->x = x;
|
||||
@@ -665,8 +675,6 @@ inline BOOL gdi_InvalidateRegion(HGDI_DC hdc, INT32 x, INT32 y, INT32 w, INT32 h
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (!gdi_CRgnToRect(x, y, w, h, &rgn))
|
||||
return FALSE;
|
||||
if (!gdi_RgnToRect(invalid, &inv))
|
||||
return FALSE;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user