From a793b4d06f90d393d37aa99249bb0189f97d8a4c Mon Sep 17 00:00:00 2001 From: MerryMage Date: Fri, 7 Apr 2017 19:44:04 +0100 Subject: [PATCH] Frame: Fix macOS keyboard while emulation is running --- Source/Core/DolphinWX/Frame.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Source/Core/DolphinWX/Frame.cpp b/Source/Core/DolphinWX/Frame.cpp index 82a48a7bef..ddedd06525 100644 --- a/Source/Core/DolphinWX/Frame.cpp +++ b/Source/Core/DolphinWX/Frame.cpp @@ -1040,12 +1040,20 @@ static int GetMenuIDFromHotkey(unsigned int key) void CFrame::OnKeyDown(wxKeyEvent& event) { -// On OS X, we claim all keyboard events while -// emulation is running to avoid wxWidgets sounding -// the system beep for unhandled key events when -// receiving pad/Wiimote keypresses which take an -// entirely different path through the HID subsystem. -#ifndef __APPLE__ +#ifdef __APPLE__ + // On OS X, we claim all keyboard events while + // emulation is running to avoid wxWidgets sounding + // the system beep for unhandled key events when + // receiving pad/Wiimote keypresses which take an + // entirely different path through the HID subsystem. + if (!m_bRendererHasFocus) + { + // We do however want to pass events on when the + // render window is out of focus: this allows use + // of the keyboard in the rest of the UI. + event.Skip(); + } +#else // On other platforms, we leave the key event alone // so it can be passed on to the windowing system. event.Skip();