Another attempt to work around wxDataViewCtrl bug on GTK.

This commit is contained in:
Jeff Young 2020-02-26 17:34:25 +00:00
parent 2d0582daa7
commit a2234b348d
1 changed files with 10 additions and 9 deletions

View File

@ -225,7 +225,14 @@ public:
void SetProvider( DRC_ITEMS_PROVIDER* aProvider )
{
Cleared();
wxWindowUpdateLocker updateLock( m_view );
// Even with the updateLock, wxWidgets sometimes ties its knickers in
// a knot when trying to run a wxdataview_selection_changed_callback()
// on a row that has been deleted.
m_view->UnselectAll();
BeforeReset();
delete m_drcItemsProvider;
m_drcItemsProvider = aProvider;
@ -242,16 +249,10 @@ public:
if( drcItem->HasSecondItem() )
node.m_Children.emplace_back( &node, drcItem, DRC_TREE_NODE::AUX_ITEM );
wxDataViewItemArray childItems;
for( DRC_TREE_NODE& child : node.m_Children )
childItems.Add( ToItem( &child ) );
ItemAdded( ToItem( nullptr ), ToItem( &node ) );
ItemsAdded( ToItem( &node ), childItems );
}
AfterReset();
ExpandAll();
}