This should fix Newsbin Pro from: -- crashing -- having drawing problems with the green lines :) ChangeLog Fix crash when computing the item width of a report with no columns Override custom draw bkgnd color for selection items Fill background for all items that have a bkgnd colour. --- dlls/comctl32/listview.c.X3 Thu Oct 24 01:25:49 2002 +++ dlls/comctl32/listview.c Thu Oct 24 01:42:50 2002 @@ -2200,8 +2200,12 @@ { RECT rcHeader; - LISTVIEW_GetHeaderRect(infoPtr, infoPtr->hdpaColumns->nItemCount - 1, &rcHeader); - nItemWidth = rcHeader.right; + if (infoPtr->hdpaColumns->nItemCount > 0) + { + LISTVIEW_GetHeaderRect(infoPtr, infoPtr->hdpaColumns->nItemCount - 1, &rcHeader); + nItemWidth = rcHeader.right; + } + else nItemWidth = 0; } else /* LVS_SMALLICON, or LVS_LIST */ { @@ -3419,6 +3423,11 @@ if (lvItem.iItem == infoPtr->nHotItem) nmlvcd.nmcd.uItemState |= CDIS_HOT; nmlvcd.nmcd.lItemlParam = lvItem.lParam; + if (cdmode & CDRF_NOTIFYITEMDRAW) + cditemmode = notify_customdraw (infoPtr, CDDS_ITEMPREPAINT, &nmlvcd); + if (cditemmode & CDRF_SKIPDEFAULT) goto postpaint; + + /* apprently, for selected items, we have to override the returned values */ if (lvItem.state & LVIS_SELECTED) { if (infoPtr->bFocus) @@ -3433,10 +3442,6 @@ } } - if (cdmode & CDRF_NOTIFYITEMDRAW) - cditemmode = notify_customdraw (infoPtr, CDDS_ITEMPREPAINT, &nmlvcd); - if (cditemmode & CDRF_SKIPDEFAULT) goto postpaint; - /* state icons */ if (infoPtr->himlState && !IsRectEmpty(&rcState)) { @@ -3477,7 +3482,7 @@ if (uView == LVS_REPORT && (infoPtr->dwLvExStyle & LVS_EX_FULLROWSELECT)) rcSelect.right = rcBox.right; - if (lvItem.state & LVIS_SELECTED) + if (nmlvcd.clrTextBk != CLR_NONE) ExtTextOutW(hdc, rcSelect.left, rcSelect.top, ETO_OPAQUE, &rcSelect, 0, 0, 0); if(lprcFocus) *lprcFocus = rcSelect; } -- Dimi.