wine-staging/patches/dinput-joy-mappings/0004-dinput-Dont-allow-Fixed-actions-to-be-changed.patch

34 lines
1.3 KiB
Diff
Raw Normal View History

From 629a5f7eea3b17f56606d3b588a5fd96ded99fef Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 4 Oct 2019 16:24:06 +1000
Subject: [PATCH] dinput: Dont allow Fixed actions to be changed.
---
dlls/dinput/config.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dlls/dinput/config.c b/dlls/dinput/config.c
index cd2c4b921e7..bfb535c9b2a 100644
--- a/dlls/dinput/config.c
+++ b/dlls/dinput/config.c
@@ -91,6 +91,7 @@ static BOOL CALLBACK collect_devices(LPCDIDEVICEINSTANCEW lpddi, IDirectInputDev
for (j = 0; j < user_af->dwNumActions; j++)
{
user_af->rgoAction[j].dwSemantic = data->original_lpdiaf->rgoAction[j].dwSemantic;
+ user_af->rgoAction[j].dwFlags = data->original_lpdiaf->rgoAction[j].dwFlags;
user_af->rgoAction[j].u.lptszActionName = data->original_lpdiaf->rgoAction[j].u.lptszActionName;
}
IDirectInputDevice8_BuildActionMap(lpdid, user_af, data->usernames[i], 0);
@@ -334,6 +335,8 @@ static void assign_action(HWND dialog)
if (old_action == action) return;
if (obj < 0) return;
+ if (lpdiaf->rgoAction[old_action].dwFlags & DIA_APPFIXED) return;
+
type = device->ddo[obj].dwType;
/* Clear old action */
--
2.23.0