diff --git a/dlls/comctl32/header.c b/dlls/comctl32/header.c index 801d339..ea85733 100644 --- a/dlls/comctl32/header.c +++ b/dlls/comctl32/header.c @@ -298,6 +298,7 @@ HEADER_DrawItem (HWND hwnd, HDC hdc, INT iItem, BOOL bHotTrack, LRESULT lCDFlags RECT r; INT oldBkMode; HTHEME theme = GetWindowTheme (hwnd); + BOOL notifyItem = lCDFlags & CDRF_NOTIFYITEMDRAW; NMCUSTOMDRAW nmcd; TRACE("DrawItem(iItem %d bHotTrack %d unicode flag %d)\n", iItem, bHotTrack, (infoPtr->nNotifyFormat == NFR_UNICODE)); @@ -310,11 +311,11 @@ HEADER_DrawItem (HWND hwnd, HDC hdc, INT iItem, BOOL bHotTrack, LRESULT lCDFlags SetTextColor(hdc, (bHotTrack && !theme) ? COLOR_HIGHLIGHT : COLOR_BTNTEXT); SetBkColor(hdc, GetSysColor(COLOR_3DFACE)); - if (lCDFlags & CDRF_NOTIFYITEMDRAW && !(phdi->fmt & HDF_OWNERDRAW)) + if (notifyItem && !(phdi->fmt & HDF_OWNERDRAW)) { LRESULT lCDItemFlags; - nmcd.dwDrawStage = CDDS_PREPAINT | CDDS_ITEM; + nmcd.dwDrawStage = CDDS_ITEMPREPAINT; nmcd.hdc = hdc; nmcd.dwItemSpec = iItem; nmcd.rc = r; @@ -495,6 +496,12 @@ HEADER_DrawItem (HWND hwnd, HDC hdc, INT iItem, BOOL bHotTrack, LRESULT lCDFlags HEADER_FreeCallbackItems(phdi); }/*Ownerdrawn*/ + if (notifyItem) + { + nmcd.dwDrawStage = CDDS_ITEMPOSTPAINT; + HEADER_SendNotify(hwnd, NM_CUSTOMDRAW, (NMHDR *)&nmcd); + } + return phdi->rect.right; }