diff --git a/cvpcb/cvpcb_mainframe.cpp b/cvpcb/cvpcb_mainframe.cpp index 2bd26080aa..ca20e0e3e6 100644 --- a/cvpcb/cvpcb_mainframe.cpp +++ b/cvpcb/cvpcb_mainframe.cpp @@ -421,6 +421,10 @@ void CVPCB_MAINFRAME::OnEnterFilteringText( wxCommandEvent& aEvent ) // If the option FOOTPRINTS_LISTBOX::FILTERING_BY_TEXT_PATTERN is set, update the list // of available footprints which match the filter + // GTK loses the search-control's focus when updating the footprints list box, so we record + // the insertion point here and then restore it (and the focus) at the end. + long pos = m_tcFilterString->GetInsertionPoint(); + COMPONENT* symbol = GetSelectedComponent(); wxString libraryName = m_librariesListBox->GetSelectedLibrary(); @@ -435,6 +439,9 @@ void CVPCB_MAINFRAME::OnEnterFilteringText( wxCommandEvent& aEvent ) RefreshFootprintViewer(); DisplayStatus(); + + m_tcFilterString->SetFocus(); + m_tcFilterString->SetInsertionPoint( pos ); }