Another attempt to work around wxDataViewCtrl bug on GTK.
This commit is contained in:
parent
2d0582daa7
commit
a2234b348d
|
@ -225,7 +225,14 @@ public:
|
||||||
|
|
||||||
void SetProvider( DRC_ITEMS_PROVIDER* aProvider )
|
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;
|
delete m_drcItemsProvider;
|
||||||
m_drcItemsProvider = aProvider;
|
m_drcItemsProvider = aProvider;
|
||||||
|
@ -242,16 +249,10 @@ public:
|
||||||
|
|
||||||
if( drcItem->HasSecondItem() )
|
if( drcItem->HasSecondItem() )
|
||||||
node.m_Children.emplace_back( &node, drcItem, DRC_TREE_NODE::AUX_ITEM );
|
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();
|
ExpandAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue