diff --git a/common/lib_tree_model_adapter.cpp b/common/lib_tree_model_adapter.cpp index 8783fcba9a..13fe26d134 100644 --- a/common/lib_tree_model_adapter.cpp +++ b/common/lib_tree_model_adapter.cpp @@ -188,38 +188,35 @@ void LIB_TREE_MODEL_ADAPTER::DoAddLibrary( wxString const& aNodeName, wxString c void LIB_TREE_MODEL_ADAPTER::UpdateSearchString( wxString const& aSearch ) { - m_tree.ResetScore(); - - for( auto& child: m_tree.m_Children ) - { - if( child->m_Pinned ) - child->m_Score *= 2; - } - - wxStringTokenizer tokenizer( aSearch ); - - while( tokenizer.HasMoreTokens() ) - { - const wxString term = tokenizer.GetNextToken().Lower(); - EDA_COMBINED_MATCHER matcher( term ); - - m_tree.UpdateScore( matcher ); - } - - m_tree.SortNodes(); - { wxWindowUpdateLocker updateLock( m_widget ); - Freeze(); + m_tree.ResetScore(); + + for( auto& child: m_tree.m_Children ) + { + if( child->m_Pinned ) + child->m_Score *= 2; + } + + wxStringTokenizer tokenizer( aSearch ); + + while( tokenizer.HasMoreTokens() ) + { + const wxString term = tokenizer.GetNextToken().Lower(); + EDA_COMBINED_MATCHER matcher( term ); + + m_tree.UpdateScore( matcher ); + } + // 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. // https://bugs.launchpad.net/kicad/+bug/1756255 m_widget->UnselectAll(); + m_tree.SortNodes(); Cleared(); - Thaw(); // This was fixed in wxWidgets 3.0.5 and 3.1.3. #if defined( __WXGTK__ ) && ( (wxVERSION_NUMBER < 030005 ) || \