From: Julian Smart Date: Thu, 24 Sep 2009 17:04:44 +0000 (+0000) Subject: Applied #11106: wxGenericDirCtrl can get into a state where it will no longer expand X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/5b806097fda2691f631cce0459e6aa752e4e5b9b Applied #11106: wxGenericDirCtrl can get into a state where it will no longer expand git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62094 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/generic/dirctrlg.cpp b/src/generic/dirctrlg.cpp index 3587660c1c..63b663923b 100644 --- a/src/generic/dirctrlg.cpp +++ b/src/generic/dirctrlg.cpp @@ -785,19 +785,12 @@ void wxGenericDirCtrl::CollapseDir(wxTreeItemId parentId) return; data->m_isExpanded = false; - wxTreeItemIdValue cookie; - /* Workaround because DeleteChildren has disapeared (why?) and - * CollapseAndReset doesn't work as advertised (deletes parent too) */ - child = m_treeCtrl->GetFirstChild(parentId, cookie); - while (child.IsOk()) - { - m_treeCtrl->Delete(child); - /* Not GetNextChild below, because the cookie mechanism can't - * handle disappearing children! */ - child = m_treeCtrl->GetFirstChild(parentId, cookie); - } + + m_treeCtrl->Freeze(); if (parentId != m_treeCtrl->GetRootItem()) - m_treeCtrl->Collapse(parentId); + m_treeCtrl->CollapseAndReset(parentId); + m_treeCtrl->DeleteChildren(parentId); + m_treeCtrl->Thaw(); } void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId)