diff --git a/reactos/dll/win32/comctl32/button.c b/reactos/dll/win32/comctl32/button.c index 325a72abb58..e3e0844bf3e 100644 --- a/reactos/dll/win32/comctl32/button.c +++ b/reactos/dll/win32/comctl32/button.c @@ -626,7 +626,10 @@ LRESULT WINAPI ButtonWndProc_common(HWND hWnd, UINT uMsg, case WM_SETFOCUS: TRACE("WM_SETFOCUS %p\n",hWnd); set_button_state( hWnd, get_button_state(hWnd) | BST_FOCUS ); - InvalidateRect(hWnd, NULL, FALSE); + if (btn_type == BS_OWNERDRAW) + paint_button( hWnd, btn_type, ODA_FOCUS ); + else + InvalidateRect(hWnd, NULL, FALSE); if (style & BS_NOTIFY) BUTTON_NOTIFY_PARENT(hWnd, BN_SETFOCUS); break; @@ -635,7 +638,6 @@ LRESULT WINAPI ButtonWndProc_common(HWND hWnd, UINT uMsg, TRACE("WM_KILLFOCUS %p\n",hWnd); state = get_button_state( hWnd ); set_button_state( hWnd, state & ~BST_FOCUS ); - paint_button( hWnd, btn_type, ODA_FOCUS ); if ((state & BUTTON_BTNPRESSED) && GetCapture() == hWnd) ReleaseCapture();