Commit 5119753a authored by Rémi Bernon's avatar Rémi Bernon Committed by Alexandre Julliard

dinput: Unacquire all devices on internal thread error.

parent 7c88cf0f
......@@ -201,7 +201,7 @@ static void dinput_unacquire_window_devices( HWND window )
LIST_FOR_EACH_ENTRY_SAFE( impl, next, &acquired_device_list, struct dinput_device, entry )
{
if (window == impl->win)
if (!window || window == impl->win)
{
TRACE( "%p window is not foreground - unacquiring %p\n", impl->win, impl );
dinput_device_internal_unacquire( &impl->IDirectInputDevice8W_iface, STATUS_UNACQUIRED );
......@@ -209,7 +209,7 @@ static void dinput_unacquire_window_devices( HWND window )
}
LIST_FOR_EACH_ENTRY_SAFE( impl, next, &acquired_mouse_list, struct dinput_device, entry )
{
if (window == impl->win)
if (!window || window == impl->win)
{
TRACE( "%p window is not foreground - unacquiring %p\n", impl->win, impl );
dinput_device_internal_unacquire( &impl->IDirectInputDevice8W_iface, STATUS_UNACQUIRED );
......@@ -217,7 +217,7 @@ static void dinput_unacquire_window_devices( HWND window )
}
LIST_FOR_EACH_ENTRY_SAFE( impl, next, &acquired_rawmouse_list, struct dinput_device, entry )
{
if (window == impl->win)
if (!window || window == impl->win)
{
TRACE( "%p window is not foreground - unacquiring %p\n", impl->win, impl );
dinput_device_internal_unacquire( &impl->IDirectInputDevice8W_iface, STATUS_UNACQUIRED );
......@@ -225,7 +225,7 @@ static void dinput_unacquire_window_devices( HWND window )
}
LIST_FOR_EACH_ENTRY_SAFE( impl, next, &acquired_keyboard_list, struct dinput_device, entry )
{
if (window == impl->win)
if (!window || window == impl->win)
{
TRACE( "%p window is not foreground - unacquiring %p\n", impl->win, impl );
dinput_device_internal_unacquire( &impl->IDirectInputDevice8W_iface, STATUS_UNACQUIRED );
......@@ -335,7 +335,8 @@ static DWORD WINAPI dinput_thread_proc( void *params )
}
}
if (ret != state.events_count) ERR("Unexpected termination, ret %#lx\n", ret);
ERR( "Unexpected termination, ret %#lx\n", ret );
dinput_unacquire_window_devices( 0 );
done:
while (state.devices_count--) dinput_device_internal_release( state.devices[state.devices_count] );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment