diff --git a/Source/Core/VideoCommon/Src/EmuWindow.cpp b/Source/Core/VideoCommon/Src/EmuWindow.cpp index 0e1c1b3992..61e5a5f17c 100644 --- a/Source/Core/VideoCommon/Src/EmuWindow.cpp +++ b/Source/Core/VideoCommon/Src/EmuWindow.cpp @@ -172,13 +172,6 @@ LRESULT CALLBACK WndProc( HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam ) /* Post the mouse events to the main window, it's nessesary because in difference to the keyboard inputs these events only appear here, not in the parent window or any other WndProc()*/ case WM_LBUTTONDOWN: - if(g_ActiveConfig.backend_info.bSupports3DVision && g_ActiveConfig.b3DVision) - { - // This basically throws away the left button down input when b3DVision is activated so WX - // can't get access to it, stopping focus pulling on mouse click. - // (Input plugins use a different system so it doesn't cause too much weirdness) - break; - } case WM_LBUTTONUP: case WM_LBUTTONDBLCLK: PostMessage(GetParentWnd(), iMsg, wParam, lParam); @@ -218,6 +211,16 @@ LRESULT CALLBACK WndProc( HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam ) return DefWindowProc(hWnd, iMsg, wParam, lParam); } break; + + if(g_ActiveConfig.backend_info.bSupports3DVision && g_ActiveConfig.b3DVision) + { + case WM_USER_KEYDOWN: + case WM_SYSKEYDOWN: + case WM_KEYDOWN: + PostMessage(m_hParent, iMsg, wParam, lParam); + break; + } + case WM_SETCURSOR: PostMessage(m_hParent, WM_USER, WM_USER_SETCURSOR, 0); return true; @@ -309,14 +312,14 @@ void Show() ShowWindow(m_hWnd, SW_SHOW); BringWindowToTop(m_hWnd); UpdateWindow(m_hWnd); - + SetFocus(m_hParent); + if(g_ActiveConfig.backend_info.bSupports3DVision && g_ActiveConfig.b3DVision) { SetActiveWindow(m_hParent); - SetFocus(m_hWnd); + SetForegroundWindow(m_hWnd); } - else - SetFocus(m_hParent); + } HWND Create(HWND hParent, HINSTANCE hInstance, const TCHAR *title)