]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/listctrl.cpp
applying OSAF patch for "toolbar selection not correct on Mac after calling Realize...
[wxWidgets.git] / src / generic / listctrl.cpp
index e6b3a70c0753a95d816ac5ca93874bc8509a888e..f02f3b99cc60f2fffcaf19bac13a7388666dcb42 100644 (file)
@@ -170,7 +170,7 @@ struct wxColWidthInfo
     }
 };
 
-WX_DEFINE_ARRAY(wxColWidthInfo *, ColWidthArray);
+WX_DEFINE_ARRAY_PTR(wxColWidthInfo *, ColWidthArray);
 
 //-----------------------------------------------------------------------------
 //  wxListItemData (internal)
@@ -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 );