diff --git a/common/eda_draw_frame.cpp b/common/eda_draw_frame.cpp index 7fc5538747..a76ee32c52 100644 --- a/common/eda_draw_frame.cpp +++ b/common/eda_draw_frame.cpp @@ -196,6 +196,10 @@ void EDA_DRAW_FRAME::unitsChangeRefresh() bool EDA_DRAW_FRAME::DispatchBehindModalDialog( wxKeyEvent& aEvent ) { + // Never process hotkeys when a text entry field is focused + if( dynamic_cast( FindFocus() ) ) + return false; + static std::set whiteList = { &ACTIONS::toggleUnits, &ACTIONS::imperialUnits, &ACTIONS::metricUnits }; diff --git a/common/tool/tool_dispatcher.cpp b/common/tool/tool_dispatcher.cpp index 3ef788a253..910f92e967 100644 --- a/common/tool/tool_dispatcher.cpp +++ b/common/tool/tool_dispatcher.cpp @@ -483,7 +483,10 @@ void TOOL_DISPATCHER::DispatchWxEvent( wxEvent& aEvent ) wxKeyEvent* ke = static_cast( &aEvent ); keyIsEscape = ( ke->GetKeyCode() == WXK_ESCAPE ); - evt = GetToolEvent( ke, &keyIsSpecial ); + + // Never process key events for tools when a text entry has focus + if( !dynamic_cast( wxWindow::FindFocus() ) ) + evt = GetToolEvent( ke, &keyIsSpecial ); } else if( type == wxEVT_MENU_OPEN || type == wxEVT_MENU_CLOSE || type == wxEVT_MENU_HIGHLIGHT ) {