}
// notice that even if this item doesn't have any image, the list
- // control still leaves space for the image if the image list is not
- // empty (presumably so that items with and without images align?)
- int wImage, hImage;
- ImageList_GetIconSize(himl, &wImage, &hImage);
+ // control still leaves space for the image in the first column if the
+ // image list is not empty (presumably so that items with and without
+ // images align?)
+ if ( it.iImage != -1 || it.iSubItem == 0 )
+ {
+ int wImage, hImage;
+ ImageList_GetIconSize(himl, &wImage, &hImage);
- rc.left += wImage + 2;
+ rc.left += wImage + 2;
+ }
}
::SetBkMode(hdc, TRANSPARENT);
}
// same thing for CDIS_FOCUS (except simpler as there is only one of them)
- if ( ListView_GetNextItem(hwndList, -1, LVNI_FOCUSED) == item )
+ if ( ::GetFocus() == hwndList &&
+ ListView_GetNextItem(hwndList, -1, LVNI_FOCUSED) == item )
{
nmcd.uItemState |= CDIS_FOCUS;
}
// set the colours to use for text drawing
- pLVCD->clrText = wxColourToRGB(attr->HasTextColour()
- ? attr->GetTextColour()
- : listctrl->GetTextColour());
- pLVCD->clrTextBk = wxColourToRGB(attr->HasBackgroundColour()
- ? attr->GetBackgroundColour()
- : listctrl->GetBackgroundColour());
+ pLVCD->clrText = attr->HasTextColour()
+ ? wxColourToRGB(attr->GetTextColour())
+ : wxColourToRGB(listctrl->GetTextColour());
+ pLVCD->clrTextBk = attr->HasBackgroundColour()
+ ? wxColourToRGB(attr->GetBackgroundColour())
+ : wxColourToRGB(listctrl->GetBackgroundColour());
// select the font if non default one is specified
if ( attr->HasFont() )