diff --git a/common/tool/tool_dispatcher.cpp b/common/tool/tool_dispatcher.cpp index 90b42cc2fe..4ee9ebc326 100644 --- a/common/tool/tool_dispatcher.cpp +++ b/common/tool/tool_dispatcher.cpp @@ -323,7 +323,18 @@ void TOOL_DISPATCHER::DispatchWxEvent( wxEvent& aEvent ) m_toolMgr->ProcessEvent( *evt ); // pass the event to the GUI, it might still be interested in it +#ifdef __APPLE__ + // On OS X, key events are always meant to be caught. An uncaught key event is assumed + // to be a user input error by OS X (as they are pressing keys in a context where nothing + // is there to catch the event). This annoyingly makes OS X beep and/or flash the screen + // in pcbnew and the footprint editor any time a hotkey is used. The correct procedure is + // to NOT pass key events to the GUI under OS X. + + if( type != wxEVT_CHAR ) + aEvent.Skip(); +#else aEvent.Skip(); +#endif updateUI(); }