Prepare background while drawing radio buttons and checkboxes.
diff --git a/controls/button.c b/controls/button.c
index 1983dd1..2fabeba 100644
--- a/controls/button.c
+++ b/controls/button.c
@@ -832,6 +832,10 @@
/* Draw the check-box bitmap */
if (action == ODA_DRAWENTIRE || action == ODA_SELECT)
{
+ /* Since WM_ERASEBKGND does nothing, first prepare background */
+ if (action == ODA_SELECT) FillRect( hDC, &rbox, hBrush );
+ else FillRect( hDC, &client, hBrush );
+
if( TWEAK_WineLook == WIN31_LOOK )
{
HDC hMemDC = CreateCompatibleDC( hDC );
@@ -841,9 +845,6 @@
/* Check in case the client area is smaller than the checkbox bitmap */
if (delta < 0) delta = 0;
- if (action == ODA_SELECT) FillRect( hDC, &rbox, hBrush );
- else FillRect( hDC, &client, hBrush );
-
if (infoPtr->state & BUTTON_HIGHLIGHTED) x += 2 * checkBoxWidth;
if (infoPtr->state & (BUTTON_CHECKED | BUTTON_3STATE)) x += checkBoxWidth;
if (((wndPtr->dwStyle & 0x0f) == BS_RADIOBUTTON) ||