X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/887b919bde47aeab043506e220be25d4d293afaf..d54f0605a9951edb38c21e7987ef3d9ea7a2011c:/src/generic/listctrl.cpp diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 89c08e18c6..09354910b6 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -1046,7 +1046,7 @@ void wxListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) ) // NB: The code below is not really Mac-specific, but since we are close // to 2.8 release and I don't have time to test on other platforms, I -// defined this only for wxMac. If this behavior is desired on +// defined this only for wxMac. If this behaviour is desired on // other platforms, please go ahead and revise or remove the #ifdef. #ifdef __WXMAC__ if ( !m_owner->IsVirtual() && (item.m_mask & wxLIST_MASK_STATE) && @@ -4027,6 +4027,19 @@ void wxListMainWindow::InsertItem( wxListItem &item ) wxListLineData *line = new wxListLineData(this); line->SetItem( item.m_col, item ); + if ( item.m_mask & wxLIST_MASK_IMAGE && item.GetImage() != -1) + { + // Reset the buffered height if it's not big enough for the new image. + if (m_small_image_list) + { + int imageWidth, imageHeight; + m_small_image_list->GetSize(item.GetImage(), + imageWidth, imageHeight); + + if ( imageHeight > m_lineHeight ) + m_lineHeight = 0; + } + } m_lines.Insert( line, id ); @@ -4853,7 +4866,9 @@ long wxGenericListCtrl::InsertItem( long index, const wxString &label, int image wxListItem info; info.m_text = label; info.m_image = imageIndex; - info.m_mask = wxLIST_MASK_TEXT | wxLIST_MASK_IMAGE; + info.m_mask = wxLIST_MASK_TEXT; + if (imageIndex > -1) + info.m_mask |= wxLIST_MASK_IMAGE; info.m_itemId = index; return InsertItem( info ); }