From 0a242842b2a09b7bc237f66d77580dfcc49acb36 Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Thu, 20 May 2004 14:12:21 +0000 Subject: [PATCH] fixed FillRect() to properly handle system color constants (thanks to Royce for spotting this bug) svn path=/trunk/; revision=9447 --- reactos/lib/user32/windows/draw.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/reactos/lib/user32/windows/draw.c b/reactos/lib/user32/windows/draw.c index e4422576db2..bfd06096ead 100644 --- a/reactos/lib/user32/windows/draw.c +++ b/reactos/lib/user32/windows/draw.c @@ -45,6 +45,8 @@ #define SPI_SETFOCUSBORDERWIDTH (8207) #define SPI_GETFOCUSBORDERHEIGHT (8208) #define SPI_SETFOCUSBORDERHEIGHT (8209) +#define COLOR_MENUHILIGHT (29) +#define COLOR_MENUBAR (30) /* GLOBALS *******************************************************************/ @@ -1823,13 +1825,18 @@ INT STDCALL FillRect(HDC hDC, CONST RECT *lprc, HBRUSH hbr) { HBRUSH prevhbr; - if ((DWORD)hbr < 0x4000) - hbr = GetSysColorBrush((DWORD)hbr); - if ((prevhbr = SelectObject(hDC, hbr)) == NULL) + + if (hbr <= (HBRUSH)(COLOR_MENUBAR + 1)) + { + hbr = GetSysColorBrush((int)hbr - 1); + } + if ((prevhbr = NtGdiSelectObject(hDC, hbr)) == NULL) + { return FALSE; - PatBlt(hDC, lprc->left, lprc->top, lprc->right - lprc->left, + } + NtGdiPatBlt(hDC, lprc->left, lprc->top, lprc->right - lprc->left, lprc->bottom - lprc->top, PATCOPY); - SelectObject(hDC, prevhbr); + NtGdiSelectObject(hDC, prevhbr); return TRUE; }