From 620de0dfbe4efa40f9bd89a3bf938a581279b948 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Thu, 24 Sep 2009 17:04:10 +0000 Subject: [PATCH] Applied #11106: wxGenericDirCtrl can get into a state where it will no longer expand git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@62093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/dirctrlg.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/generic/dirctrlg.cpp b/src/generic/dirctrlg.cpp index a4e20dd31e..ecc41f04ce 100644 --- a/src/generic/dirctrlg.cpp +++ b/src/generic/dirctrlg.cpp @@ -768,19 +768,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)