mirror of
https://github.com/libretro/RetroArch.git
synced 2025-02-26 04:36:56 +00:00
Merge pull request #12002 from sonninnos/win-grab
(Windows) Mouse grabbing/clipping with alt-tab
This commit is contained in:
commit
6d5713ca25
@ -1019,7 +1019,12 @@ static LRESULT CALLBACK wnd_proc_common_internal(HWND hwnd,
|
||||
#endif
|
||||
break;
|
||||
case WM_SETFOCUS:
|
||||
win32_clip_window(input_mouse_grabbed());
|
||||
if (input_mouse_grabbed())
|
||||
win32_clip_window(true);
|
||||
break;
|
||||
case WM_KILLFOCUS:
|
||||
if (input_mouse_grabbed())
|
||||
win32_clip_window(false);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1128,7 +1133,12 @@ static LRESULT CALLBACK wnd_proc_common_dinput_internal(HWND hwnd,
|
||||
#endif
|
||||
break;
|
||||
case WM_SETFOCUS:
|
||||
win32_clip_window(input_mouse_grabbed());
|
||||
if (input_mouse_grabbed())
|
||||
win32_clip_window(true);
|
||||
break;
|
||||
case WM_KILLFOCUS:
|
||||
if (input_mouse_grabbed())
|
||||
win32_clip_window(false);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1003,9 +1003,13 @@ static void dinput_grab_mouse(void *data, bool state)
|
||||
IDirectInputDevice8_Unacquire(di->mouse);
|
||||
IDirectInputDevice8_SetCooperativeLevel(di->mouse,
|
||||
(HWND)video_driver_window_get(),
|
||||
#if 0
|
||||
state ?
|
||||
(DISCL_EXCLUSIVE | DISCL_FOREGROUND) :
|
||||
(DISCL_NONEXCLUSIVE | DISCL_FOREGROUND));
|
||||
#else
|
||||
(DISCL_NONEXCLUSIVE | DISCL_FOREGROUND));
|
||||
#endif
|
||||
IDirectInputDevice8_Acquire(di->mouse);
|
||||
|
||||
#ifndef _XBOX
|
||||
|
@ -228,10 +228,16 @@ static BOOL winraw_set_mouse_input(HWND window, bool grab)
|
||||
{
|
||||
RAWINPUTDEVICE rid;
|
||||
|
||||
#if 0
|
||||
if (window)
|
||||
rid.dwFlags = grab ? RIDEV_CAPTUREMOUSE | RIDEV_NOLEGACY : 0;
|
||||
else
|
||||
rid.dwFlags = RIDEV_REMOVE;
|
||||
#else
|
||||
rid.dwFlags = 0;
|
||||
if (!window)
|
||||
rid.dwFlags = RIDEV_REMOVE;
|
||||
#endif
|
||||
|
||||
rid.hwndTarget = window;
|
||||
rid.usUsagePage = 0x01; /* generic desktop */
|
||||
|
Loading…
x
Reference in New Issue
Block a user