In linux only read keyboard and mouse input when the emulator window has focus.

Also other code clean up.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5053 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Glenn Rice
2010-02-13 23:56:24 +00:00
parent 5e6eecf0af
commit e5afde67ce
11 changed files with 56 additions and 28 deletions

View File

@ -310,7 +310,7 @@ bool IsKey(int Key)
}
else if (MapKey < 0x1100)
#elif defined(HAVE_X11) && HAVE_X11
if (MapKey < 256 || MapKey >= 0xf000)
if (HaveFocus() && (MapKey < 256 || MapKey >= 0xf000))
{
char keys[32];
KeyCode keyCode;
@ -346,23 +346,20 @@ bool IsKey(int Key)
}
#endif
#if defined(HAVE_X11) && HAVE_X11
if ((Key == EWM_SHAKE) || (Key == EWM_A) || (Key == EWM_B))
if ((Key == EWM_SHAKE || Key == EWM_A || Key == EWM_B) && HaveFocus())
{
Window GLWin = *(Window *)g_WiimoteInitialize.pXWindow;
if (GLWin != 0)
int root_x, root_y, win_x, win_y;
Window rootDummy, childWin;
unsigned int mask;
XQueryPointer(WMdisplay, GLWin, &rootDummy, &childWin, &root_x, &root_y, &win_x, &win_y, &mask);
if (((Key == EWM_A) && (mask & Button1Mask))
|| ((Key == EWM_B) && (mask & Button3Mask))
|| ((Key == EWM_SHAKE) && (mask & Button3Mask)))
{
int root_x, root_y, win_x, win_y;
Window rootDummy, childWin;
unsigned int mask;
XQueryPointer(WMdisplay, GLWin, &rootDummy, &childWin, &root_x, &root_y, &win_x, &win_y, &mask);
if (((Key == EWM_A) && (mask & Button1Mask))
|| ((Key == EWM_B) && (mask & Button3Mask))
|| ((Key == EWM_SHAKE) && (mask & Button3Mask)))
{
float x, y;
GetMousePos(x, y);
Ret = !(x < 0 || x > 1 || y < 0 || y > 1);
}
float x, y;
GetMousePos(x, y);
Ret = !(x < 0 || x > 1 || y < 0 || y > 1);
}
}
#endif