[0.4.14][WIN32SS] Repaint the whole window frame on some style bits set (#3199)

This fixes the ReactOS Calculator buttons disappearing in CORE-16827

It once regressed by 0.4.13-dev-221-g
2161dd85dc
which did aim to fix CORE-15934.
Noteworthy that releases/0.4.12 was never affected although I fixed CORE-15934
there as well, but *not* with the fix that went into master later!

fix picked from commit 0.4.15-dev-1197-g
8081ba9332
This commit is contained in:
Doug Lyons 2020-10-24 14:35:45 -05:00 committed by Joachim Henze
parent fcf855770c
commit 286bfe92b2

View file

@ -2116,6 +2116,17 @@ co_WinPosSetWindowPos(
} }
if ( !(pwnd->style & WS_CHILD) ) if ( !(pwnd->style & WS_CHILD) )
{
/*
* Check if we have these specific windows style bits set/reset.
* FIXME: There may be other combinations of styles that need this handling as well.
* This fixes the ReactOS Calculator buttons disappearing in CORE-16827.
*/
if ((Window->style & WS_CLIPSIBLINGS) && !(Window->style & (WS_POPUP | WS_CLIPCHILDREN | WS_SIZEBOX)))
{
IntSendNCPaint(pwnd, HRGN_WINDOW); // Paint the whole frame.
}
else // Use region handling
{ {
HRGN DcRgn = NtGdiCreateRectRgn(0, 0, 0, 0); HRGN DcRgn = NtGdiCreateRectRgn(0, 0, 0, 0);
PREGION DcRgnObj = REGION_LockRgn(DcRgn); PREGION DcRgnObj = REGION_LockRgn(DcRgn);
@ -2127,6 +2138,7 @@ co_WinPosSetWindowPos(
} }
} }
} }
}
REGION_Delete(DirtyRgn); REGION_Delete(DirtyRgn);
} }
} }