Try re-organizing the events for the search ctrl to allow MSW icon to be shown.
See further comments in bug report. Fixes https://gitlab.com/kicad/code/kicad/issues/11743
This commit is contained in:
parent
4de264ddaa
commit
85e8d1eb38
|
@ -75,10 +75,8 @@ LIB_TREE::LIB_TREE( wxWindow* aParent, const wxString& aRecentSearchesKey, LIB_T
|
||||||
m_query_ctrl->Bind( wxEVT_TEXT, &LIB_TREE::onQueryText, this );
|
m_query_ctrl->Bind( wxEVT_TEXT, &LIB_TREE::onQueryText, this );
|
||||||
|
|
||||||
#if wxCHECK_VERSION( 3, 1, 1 )
|
#if wxCHECK_VERSION( 3, 1, 1 )
|
||||||
m_query_ctrl->Bind( wxEVT_SEARCH, &LIB_TREE::onQueryEnter, this );
|
|
||||||
m_query_ctrl->Bind( wxEVT_SEARCH_CANCEL, &LIB_TREE::onQueryText, this );
|
m_query_ctrl->Bind( wxEVT_SEARCH_CANCEL, &LIB_TREE::onQueryText, this );
|
||||||
#else
|
#else
|
||||||
m_query_ctrl->Bind( wxEVT_TEXT_ENTER, &LIB_TREE::onQueryEnter, this );
|
|
||||||
m_query_ctrl->Bind( wxEVT_SEARCHCTRL_CANCEL_BTN, &LIB_TREE::onQueryText, this );
|
m_query_ctrl->Bind( wxEVT_SEARCHCTRL_CANCEL_BTN, &LIB_TREE::onQueryText, this );
|
||||||
#endif
|
#endif
|
||||||
m_query_ctrl->Bind( wxEVT_CHAR_HOOK, &LIB_TREE::onQueryCharHook, this );
|
m_query_ctrl->Bind( wxEVT_CHAR_HOOK, &LIB_TREE::onQueryCharHook, this );
|
||||||
|
@ -257,12 +255,6 @@ wxString LIB_TREE::GetSearchString() const
|
||||||
|
|
||||||
void LIB_TREE::updateRecentSearchMenu()
|
void LIB_TREE::updateRecentSearchMenu()
|
||||||
{
|
{
|
||||||
#ifdef __WXMSW__
|
|
||||||
// Sadly there's a bug somewhere (presumably in wxWidgets, although possibly in the way we
|
|
||||||
// interact with wxWidgets) that causes the search button and drop-down menu to OK the dialog
|
|
||||||
// on MSW, resulting in very unexpected behaviour. #11743
|
|
||||||
m_query_ctrl->ShowSearchButton( false );
|
|
||||||
#else
|
|
||||||
wxString newEntry = GetSearchString();
|
wxString newEntry = GetSearchString();
|
||||||
|
|
||||||
std::vector<wxString>& recents = g_recentSearches[ m_recentSearchesKey ];
|
std::vector<wxString>& recents = g_recentSearches[ m_recentSearchesKey ];
|
||||||
|
@ -287,7 +279,6 @@ void LIB_TREE::updateRecentSearchMenu()
|
||||||
menu->Append( wxID_ANY, _( "recent searches" ) );
|
menu->Append( wxID_ANY, _( "recent searches" ) );
|
||||||
|
|
||||||
m_query_ctrl->SetMenu( menu );
|
m_query_ctrl->SetMenu( menu );
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -460,15 +451,6 @@ void LIB_TREE::onQueryText( wxCommandEvent& aEvent )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LIB_TREE::onQueryEnter( wxCommandEvent& aEvent )
|
|
||||||
{
|
|
||||||
updateRecentSearchMenu();
|
|
||||||
|
|
||||||
if( GetSelectedLibId().IsValid() )
|
|
||||||
postSelectEvent();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void LIB_TREE::onDebounceTimer( wxTimerEvent& aEvent )
|
void LIB_TREE::onDebounceTimer( wxTimerEvent& aEvent )
|
||||||
{
|
{
|
||||||
m_inTimerEvent = true;
|
m_inTimerEvent = true;
|
||||||
|
@ -513,10 +495,10 @@ void LIB_TREE::onQueryCharHook( wxKeyEvent& aKeyStroke )
|
||||||
case WXK_RETURN:
|
case WXK_RETURN:
|
||||||
updateRecentSearchMenu();
|
updateRecentSearchMenu();
|
||||||
|
|
||||||
if( type == LIB_TREE_NODE::LIB )
|
if( GetSelectedLibId().IsValid() )
|
||||||
|
postSelectEvent();
|
||||||
|
else if( type == LIB_TREE_NODE::LIB )
|
||||||
toggleExpand( sel );
|
toggleExpand( sel );
|
||||||
else
|
|
||||||
aKeyStroke.Skip(); // pass on to search box to select node
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -191,7 +191,6 @@ protected:
|
||||||
void updateRecentSearchMenu();
|
void updateRecentSearchMenu();
|
||||||
|
|
||||||
void onQueryText( wxCommandEvent& aEvent );
|
void onQueryText( wxCommandEvent& aEvent );
|
||||||
void onQueryEnter( wxCommandEvent& aEvent );
|
|
||||||
void onQueryCharHook( wxKeyEvent& aEvent );
|
void onQueryCharHook( wxKeyEvent& aEvent );
|
||||||
void onQueryMouseMoved( wxMouseEvent& aEvent );
|
void onQueryMouseMoved( wxMouseEvent& aEvent );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue