Wiimote: Don't allow input when Dolphin is not in focus (supports both the rendering to main window and render to separate window options)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2057 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
John Peterson 2009-02-01 15:40:13 +00:00
parent e9036455d6
commit d352372ccf
3 changed files with 32 additions and 0 deletions

View File

@ -208,6 +208,9 @@ void FillReportInfo(wm_core& _core)
// These keys are reserved for the recording // These keys are reserved for the recording
if ( GetAsyncKeyState(VK_SHIFT) || GetAsyncKeyState(VK_CONTROL) ) return; if ( GetAsyncKeyState(VK_SHIFT) || GetAsyncKeyState(VK_CONTROL) ) return;
// Check that Dolphin is in focus
if (!IsFocus()) return;
// Check the mouse position. Don't allow mouse clicks from outside the window. // Check the mouse position. Don't allow mouse clicks from outside the window.
float x, y; GetMousePos(x, y); float x, y; GetMousePos(x, y);
bool InsideScreen = !(x < 0 || x > 1 || y < 0 || y > 1); bool InsideScreen = !(x < 0 || x > 1 || y < 0 || y > 1);
@ -287,6 +290,15 @@ void FillReportAcc(wm_accel& _acc)
// --------------------- // ---------------------
// Check that Dolphin is in focus
if (!IsFocus())
{
_acc.x = X;
_acc.y = y;
_acc.z = z;
return;
}
// ------------------------------------ // ------------------------------------
// Wiimote to Gamepad translations // Wiimote to Gamepad translations
// ---------- // ----------
@ -768,6 +780,13 @@ void FillReportClassicExtension(wm_classic_extension& _ext)
_ext.b2.bB = 0x01; _ext.b2.bB = 0x01;
_ext.b2.bZL = 0x01; _ext.b2.bZL = 0x01;
// --------------------------------------
// Check that Dolphin is in focus
if (!IsFocus()) return;
// --------------------------------------
// -------------------------------------- // --------------------------------------
/* Left and right analog sticks /* Left and right analog sticks

View File

@ -336,6 +336,18 @@ extern "C" unsigned int Wiimote_GetAttachedControllers()
// Supporting functions // Supporting functions
//****************************************************************************** //******************************************************************************
// Check if Dolphin is in focus
bool IsFocus()
{
HWND Parent = GetParent(g_WiimoteInitialize.hWnd);
HWND TopLevel = GetParent(Parent);
// Support both rendering to main window and not
if (GetForegroundWindow() == TopLevel || GetForegroundWindow() == g_WiimoteInitialize.hWnd)
return true;
else
return false;
}
void ReadDebugging(bool Emu, const void* _pData) void ReadDebugging(bool Emu, const void* _pData)
{ {
// //

View File

@ -42,6 +42,7 @@ double GetDoubleTime();
int GetUpdateRate(); int GetUpdateRate();
void InterruptDebugging(bool Emu, const void* _pData); void InterruptDebugging(bool Emu, const void* _pData);
void ReadDebugging(bool Emu, const void* _pData); void ReadDebugging(bool Emu, const void* _pData);
bool IsFocus();
// Movement recording // Movement recording
#define RECORDING_ROWS 15 #define RECORDING_ROWS 15