X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7d4813a0c1c651e647c2fcc64b19e156a2d7cc33..a393f450dc992c9b37300b4a6255bf4e1c97ce69:/src/generic/listctrl.cpp?ds=sidebyside diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index e6b3a70c07..5c5a6b521c 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -170,7 +170,7 @@ struct wxColWidthInfo } }; -WX_DEFINE_ARRAY(wxColWidthInfo *, ColWidthArray); +WX_DEFINE_ARRAY_PTR(wxColWidthInfo *, ColWidthArray); //----------------------------------------------------------------------------- // wxListItemData (internal) @@ -2147,7 +2147,7 @@ void wxListTextCtrl::OnKeyUp( wxKeyEvent &event ) void wxListTextCtrl::OnKillFocus( wxFocusEvent &event ) { - if ( !m_finished ) + if ( !m_finished && !m_aboutToFinish ) { // We must finish regardless of success, otherwise we'll get // focus problems: @@ -2263,6 +2263,7 @@ wxListMainWindow::~wxListMainWindow() { DoDeleteAllItems(); WX_CLEAR_LIST(wxListHeaderDataList, m_columns); + WX_CLEAR_ARRAY(m_aColWidths); delete m_highlightBrush; delete m_highlightUnfocusedBrush; @@ -4353,7 +4354,7 @@ void wxListMainWindow::DoDeleteAllItems() ResetVisibleLinesRange(); for (size_t i = 0; i < m_aColWidths.GetCount(); i++) { - delete m_aColWidths.Item(i); + m_aColWidths.Item(i)->bNeedsUpdate = true; } } @@ -4370,6 +4371,7 @@ void wxListMainWindow::DeleteAllItems() void wxListMainWindow::DeleteEverything() { WX_CLEAR_LIST(wxListHeaderDataList, m_columns); + WX_CLEAR_ARRAY(m_aColWidths); DeleteAllItems(); } @@ -4501,9 +4503,7 @@ void wxListMainWindow::InsertItem( wxListItem &item ) // calculate the width of the item and adjust the max column width wxColWidthInfo *pWidthInfo = m_aColWidths.Item(item.GetColumn()); - int width = 0; - - width = GetItemWidthWithImage(&item); + int width = GetItemWidthWithImage(&item); item.SetWidth(width); if (width > pWidthInfo->nMaxWidth) pWidthInfo->nMaxWidth = width; @@ -4636,7 +4636,7 @@ void wxListMainWindow::OnScroll(wxScrollWinEvent& event) ResetVisibleLinesRange(); // FIXME -#if defined(__WXGTK__) && !defined(__WXUNIVERSAL__) +#if ( defined(__WXGTK__) || defined(__WXMAC__) ) && !defined(__WXUNIVERSAL__) wxScrolledWindow::OnScroll(event); #else HandleOnScroll( event );