From eeaa613705c8e949ed23c1be68dd18864d6ac6ac Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Thu, 27 Oct 2016 21:19:05 +0200 Subject: [PATCH] Fix wxDataViewCtrlAccessible::DoDefaultAction Calling wxDataViewTreeNode::ToggleOpen() is not sufficient to actually expand/collapse the item. Calls to wxDataViewMainWindow::Expand()/Collapse() are necessary to do so. --- src/generic/datavgen.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp index 3be424b7ca..eac358fc00 100644 --- a/src/generic/datavgen.cpp +++ b/src/generic/datavgen.cpp @@ -5828,13 +5828,17 @@ wxAccStatus wxDataViewCtrlAccessible::DoDefaultAction(int childId) wxDataViewMainWindow* dvWnd = wxDynamicCast(dvCtrl->GetMainWindow(), wxDataViewMainWindow); if ( !dvWnd->IsList() ) { - wxDataViewTreeNode* node = dvWnd->GetTreeNodeByRow(childId-1); + const unsigned int row = childId-1; + wxDataViewTreeNode* node = dvWnd->GetTreeNodeByRow(row); if ( node ) { if ( node->HasChildren() ) { // Expand or collapse the node. - node->ToggleOpen(); + if ( node->IsOpen() ) + dvWnd->Collapse(row); + else + dvWnd->Expand(row); return wxACC_OK; } }