diff --git a/src/qt/treectrl.cpp b/src/qt/treectrl.cpp index b7bca683a6..16600c43a9 100644 --- a/src/qt/treectrl.cpp +++ b/src/qt/treectrl.cpp @@ -977,6 +977,8 @@ void wxTreeCtrl::Delete(const wxTreeItemId& item) QTreeWidgetItem *qTreeItem = wxQtConvertTreeItem(item); QTreeWidgetItem *parent = qTreeItem->parent(); + DeleteChildren(qTreeItem); + if ( parent != NULL ) { parent->removeChild(qTreeItem); diff --git a/tests/controls/treectrltest.cpp b/tests/controls/treectrltest.cpp index 3d03a768eb..2b1cd2e2ed 100644 --- a/tests/controls/treectrltest.cpp +++ b/tests/controls/treectrltest.cpp @@ -279,9 +279,10 @@ void TreeCtrlTestCase::DeleteItem() EventCounter deleteitem(m_tree, wxEVT_TREE_DELETE_ITEM); wxTreeItemId todelete = m_tree->AppendItem(m_root, "deleteme"); + m_tree->AppendItem(todelete, "deleteme2"); m_tree->Delete(todelete); - CPPUNIT_ASSERT_EQUAL(1, deleteitem.GetCount()); + CPPUNIT_ASSERT_EQUAL(2, deleteitem.GetCount()); } void TreeCtrlTestCase::DeleteChildren()