diff --git a/docs/changes.txt b/docs/changes.txt index b6b78063cf..6e9efe73f7 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -584,6 +584,7 @@ Unix: All (GUI): +- Fix hang when deleting columns from wxTreeListCtrl. - Fix several floating point rounding bugs in wxPropertyGrid (Artur Wieczorek). - Restore support for wxFD_OVERWRITE_PROMPT and wxFD_FILE_MUST_EXIST in wxGenericFileDialog which was accidentally lost some time ago (Carl Godkin). diff --git a/src/generic/treelist.cpp b/src/generic/treelist.cpp index 73fbe6c466..6c0e1e4d7c 100644 --- a/src/generic/treelist.cpp +++ b/src/generic/treelist.cpp @@ -170,10 +170,15 @@ public: wxScopedArray oldTexts(m_columnsTexts); m_columnsTexts = new wxString[numColumns - 2]; + + // As above, n is the index in the new column texts array and m is the + // index in the old one. for ( unsigned n = 1, m = 1; n < numColumns - 1; n++, m++ ) { - if ( n == col ) + if ( m == col ) { + // Skip copying the deleted column and keep the new index the + // same (so compensate for "n++" done in the loop). n--; } else // Not the deleted column.