Module: wine Branch: master Commit: df6bc20b90b54e3993cedaa79dab0e50abb19604 URL: https://gitlab.winehq.org/wine/wine/-/commit/df6bc20b90b54e3993cedaa79dab0e5...
Author: Rémi Bernon rbernon@codeweavers.com Date: Fri May 19 17:29:07 2023 +0200
dinput: Clear DIA_APPNOMAP BuildActionMap flag with specific device semantic.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54917
---
dlls/dinput/device.c | 1 + dlls/dinput/tests/device8.c | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c index 8fc54d8ce32..b761b3e9d6d 100644 --- a/dlls/dinput/device.c +++ b/dlls/dinput/device.c @@ -1851,6 +1851,7 @@ static HRESULT WINAPI dinput_device_BuildActionMap( IDirectInputDevice8W *iface, if (action->dwFlags & DIA_APPMAPPED) action->dwHow = DIAH_APPREQUESTED; else action->dwHow = 0; if (action->dwHow == DIAH_APPREQUESTED || action->dwHow == DIAH_USERCONFIG) continue; + if ((action->dwSemantic & 0xf0000000) == 0x80000000) action->dwFlags &= ~DIA_APPNOMAP; if (!(action->dwFlags & DIA_APPNOMAP)) action->guidInstance = GUID_NULL; }
diff --git a/dlls/dinput/tests/device8.c b/dlls/dinput/tests/device8.c index dd606dce2a5..1d53d35a93b 100644 --- a/dlls/dinput/tests/device8.c +++ b/dlls/dinput/tests/device8.c @@ -1727,17 +1727,13 @@ static void check_diactionA_( int line, const DIACTIONA *actual, const DIACTIONA { check_member_( __FILE__, line, *actual, *expected, "%#Ix", uAppData ); check_member_( __FILE__, line, *actual, *expected, "%#lx", dwSemantic ); - todo_wine_if( expected->dwSemantic == 0x810004c8 ) check_member_( __FILE__, line, *actual, *expected, "%#lx", dwFlags ); if (actual->lptszActionName && expected->lptszActionName) check_member_str_( __FILE__, line, *actual, *expected, lptszActionName ); else check_member_( __FILE__, line, *actual, *expected, "%p", lptszActionName ); - todo_wine_if( expected->dwSemantic == 0x810004c8 ) check_member_guid_( __FILE__, line, *actual, *expected, guidInstance ); - todo_wine_if( expected->dwSemantic == 0x810004c8 ) check_member_( __FILE__, line, *actual, *expected, "%#lx", dwObjID ); - todo_wine_if( expected->dwSemantic == 0x810004c8 ) check_member_( __FILE__, line, *actual, *expected, "%#lx", dwHow ); }