Added save and reset of SetBKMode values in WM_PAINT.
Added handling of lParam value in BM_SETSTYLE.
diff --git a/controls/button.c b/controls/button.c
index 671bb11..afeafe1 100644
--- a/controls/button.c
+++ b/controls/button.c
@@ -133,8 +133,9 @@
{
PAINTSTRUCT ps;
HDC hdc = wParam ? (HDC)wParam : BeginPaint( hWnd, &ps );
- SetBkMode( hdc, OPAQUE );
+ int nOldMode = SetBkMode( hdc, OPAQUE );
(btnPaintFunc[style])( wndPtr, hdc, ODA_DRAWENTIRE );
+ SetBkMode(hdc, nOldMode); /* reset painting mode */
if( !wParam ) EndPaint( hWnd, &ps );
}
break;
@@ -266,7 +267,11 @@
wndPtr->dwStyle = (wndPtr->dwStyle & 0xfffffff0)
| (wParam & 0x0000000f);
style = wndPtr->dwStyle & 0x0000000f;
- PAINT_BUTTON( wndPtr, style, ODA_DRAWENTIRE );
+
+ /* Only redraw if lParam flag is set.*/
+ if (lParam)
+ PAINT_BUTTON( wndPtr, style, ODA_DRAWENTIRE );
+
break;
case BM_CLICK: