From 4ee5edc7997cc58d93e4d32be8177041eac19abc Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Mon, 20 Oct 2008 11:33:58 +0000 Subject: [PATCH] Fix wxListCtrl::Insert() bug reported by Riccardo Cohen git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/osx/carbon/listctrl_mac.cpp | 3 ++- src/osx/carbon/utils.cpp | 22 ++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/osx/carbon/listctrl_mac.cpp b/src/osx/carbon/listctrl_mac.cpp index a933d4ad0e..fb89dc344c 100644 --- a/src/osx/carbon/listctrl_mac.cpp +++ b/src/osx/carbon/listctrl_mac.cpp @@ -3107,11 +3107,12 @@ Boolean wxMacDataBrowserListCtrlControl::CompareItems(DataBrowserItemID itemOneI wxMacListCtrlItem* otherItem = (wxMacListCtrlItem*)itemTwoID; itemOrder = item->GetOrder(); - otherItemOrder = item->GetOrder(); + otherItemOrder = otherItem->GetOrder(); wxListCtrlCompare func = list->GetCompareFunc(); if (func != NULL) { + long item1 = -1; long item2 = -1; if (item && item->HasColumnInfo(0)) diff --git a/src/osx/carbon/utils.cpp b/src/osx/carbon/utils.cpp index e1dd4bcf7d..e22569821c 100644 --- a/src/osx/carbon/utils.cpp +++ b/src/osx/carbon/utils.cpp @@ -1038,10 +1038,9 @@ void wxMacDataItemBrowserControl::MacDelete( unsigned int n ) void wxMacDataItemBrowserControl::MacInsert( unsigned int n, wxMacDataItem* item) { - SInt32 frontLineOrder = 0; - if ( m_sortOrder == SortOrder_None ) { + // increase the order of the lines to be shifted unsigned int lines = MacGetCount(); for ( unsigned int i = n; i < lines; ++i) @@ -1049,22 +1048,21 @@ void wxMacDataItemBrowserControl::MacInsert( unsigned int n, wxMacDataItem* item wxMacDataItem* iter = (wxMacDataItem*) GetItemFromLine(i); iter->SetOrder( iter->GetOrder() + 1 ); } + +#if 0 + // I don't understand what this code is supposed to do, RR. + SInt32 frontLineOrder = 0; if ( n > 0 ) { wxMacDataItem* iter = (wxMacDataItem*) GetItemFromLine(n-1); - frontLineOrder = iter->GetOrder(); + frontLineOrder = iter->GetOrder()+1; } +#else + item->SetOrder( n ); +#endif } - wxArrayMacDataItemPtr ids; - ids.SetCount( 1 ); - - if ( m_sortOrder == SortOrder_None ) - item->SetOrder( frontLineOrder + 1 ); - - ids[0] = item; - - AddItems( wxMacDataBrowserRootContainer, ids ); + AddItem( wxMacDataBrowserRootContainer, item ); } void wxMacDataItemBrowserControl::MacClear() -- 2.45.2