On 2/22/21 12:50 PM, Arkadiusz Hiler wrote:
This is a preparation for a patch that changes setupapi to return lowercased device paths, which is the source of RawInput device names. On Windows RawInput returns mostly uppercase names (except the GUID part) and we want to keep Wine's old behavior in this regards as SDL 2.0.14+ looks for uppercase IG_ to match xinput devices to their RawInput counterparts.
Signed-off-by: Arkadiusz Hiler ahiler@codeweavers.com
dlls/user32/rawinput.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/rawinput.c b/dlls/user32/rawinput.c index ba11a121bc5..13aac0278d5 100644 --- a/dlls/user32/rawinput.c +++ b/dlls/user32/rawinput.c @@ -94,7 +94,7 @@ static struct device *add_device(HDEVINFO set, SP_DEVICE_INTERFACE_DATA *iface) SP_DEVICE_INTERFACE_DETAIL_DATA_W *detail; struct device *device; HANDLE file;
- WCHAR *path;
WCHAR *path, *pos; DWORD size;
SetupDiGetDeviceInterfaceDetailW(set, iface, NULL, 0, &size, NULL);
@@ -121,6 +121,9 @@ static struct device *add_device(HDEVINFO set, SP_DEVICE_INTERFACE_DATA *iface) } heap_free(detail);
- /* upper case everything but the GUID */
- for (pos = path; *pos && *pos != '{'; pos++) *pos = towupper(*pos);
file = CreateFileW(path, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0); if (file == INVALID_HANDLE_VALUE)
Hi Arek!
I'd think a test to validate this could be nice. I know we don't have any gamepad device available on the test bot, but maybe it's still possible to validate at least with with mouse / keyboard devices? It would also let us check the test manually on a real Windows with a gamepad plugged in.
Also, the commit title should probably be "user32:", not "RawInput:".
Cheers,