Merge pull request #2752 from Armada651/osx-beep
CFrame: Claim all keyboard events on OS X.
This commit is contained in:
commit
b5fe028e18
|
@ -1068,6 +1068,20 @@ bool TASInputHasFocus()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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__
|
||||||
|
// On other platforms, we leave the key event alone
|
||||||
|
// so it can be passed on to the windowing system.
|
||||||
|
event.Skip();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void CFrame::OnMouse(wxMouseEvent& event)
|
void CFrame::OnMouse(wxMouseEvent& event)
|
||||||
{
|
{
|
||||||
// next handlers are all for FreeLook, so we don't need to check them if disabled
|
// next handlers are all for FreeLook, so we don't need to check them if disabled
|
||||||
|
|
|
@ -320,8 +320,6 @@ private:
|
||||||
void OnToggleWindow(wxCommandEvent& event);
|
void OnToggleWindow(wxCommandEvent& event);
|
||||||
|
|
||||||
void OnKeyDown(wxKeyEvent& event); // Keyboard
|
void OnKeyDown(wxKeyEvent& event); // Keyboard
|
||||||
void OnKeyUp(wxKeyEvent& event);
|
|
||||||
|
|
||||||
void OnMouse(wxMouseEvent& event); // Mouse
|
void OnMouse(wxMouseEvent& event); // Mouse
|
||||||
|
|
||||||
void OnFocusChange(wxFocusEvent& event);
|
void OnFocusChange(wxFocusEvent& event);
|
||||||
|
|
|
@ -1046,6 +1046,7 @@ void CFrame::StartGame(const std::string& filename)
|
||||||
|
|
||||||
m_RenderParent->SetFocus();
|
m_RenderParent->SetFocus();
|
||||||
|
|
||||||
|
wxTheApp->Bind(wxEVT_KEY_DOWN, &CFrame::OnKeyDown, this);
|
||||||
wxTheApp->Bind(wxEVT_RIGHT_DOWN, &CFrame::OnMouse, this);
|
wxTheApp->Bind(wxEVT_RIGHT_DOWN, &CFrame::OnMouse, this);
|
||||||
wxTheApp->Bind(wxEVT_RIGHT_UP, &CFrame::OnMouse, this);
|
wxTheApp->Bind(wxEVT_RIGHT_UP, &CFrame::OnMouse, this);
|
||||||
wxTheApp->Bind(wxEVT_MIDDLE_DOWN, &CFrame::OnMouse, this);
|
wxTheApp->Bind(wxEVT_MIDDLE_DOWN, &CFrame::OnMouse, this);
|
||||||
|
|
Loading…
Reference in New Issue