diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c index 098efb7b3be..b3875a8838e 100644 --- a/dlls/dinput/device.c +++ b/dlls/dinput/device.c @@ -674,7 +674,7 @@ static BOOL load_mapping_settings(IDirectInputDeviceImpl *This, LPDIACTIONFORMAT HKEY hkey; WCHAR *guid_str; DIDEVICEINSTANCEW didev; - int i; + int i, mapped = 0; didev.dwSize = sizeof(didev); IDirectInputDevice8_GetDeviceInfo(&This->IDirectInputDevice8W_iface, &didev); @@ -703,14 +703,15 @@ static BOOL load_mapping_settings(IDirectInputDeviceImpl *This, LPDIACTIONFORMAT { lpdiaf->rgoAction[i].dwObjID = id; lpdiaf->rgoAction[i].guidInstance = didev.guidInstance; - lpdiaf->rgoAction[i].dwHow = DIAH_USERCONFIG; + lpdiaf->rgoAction[i].dwHow = DIAH_DEFAULT; + mapped += 1; } } RegCloseKey(hkey); CoTaskMemFree(guid_str); - return TRUE; + return mapped > 0; } HRESULT _build_action_map(LPDIRECTINPUTDEVICE8W iface, LPDIACTIONFORMATW lpdiaf, LPCWSTR lpszUserName, DWORD dwFlags, DWORD devMask, LPCDIDATAFORMAT df) diff --git a/dlls/dinput8/tests/device.c b/dlls/dinput8/tests/device.c index 2140388f4b6..c211594a221 100644 --- a/dlls/dinput8/tests/device.c +++ b/dlls/dinput8/tests/device.c @@ -447,13 +447,13 @@ static void test_save_settings(void) hr = IDirectInputDevice8_BuildActionMap(pKey, &af, NULL, 0); ok (SUCCEEDED(hr), "BuildActionMap failed hr=%08x\n", hr); - todo_wine ok (results[0] == af.rgoAction[0].dwObjID, + ok (results[0] == af.rgoAction[0].dwObjID, "Mapped incorrectly expected: 0x%08x got: 0x%08x\n", results[0], af.rgoAction[0].dwObjID); - todo_wine ok (IsEqualGUID(&GUID_SysKeyboard, &af.rgoAction[0].guidInstance), "Action should be mapped to keyboard\n"); + ok (IsEqualGUID(&GUID_SysKeyboard, &af.rgoAction[0].guidInstance), "Action should be mapped to keyboard\n"); - todo_wine ok (results[1] == af.rgoAction[1].dwObjID, + ok (results[1] == af.rgoAction[1].dwObjID, "Mapped incorrectly expected: 0x%08x got: 0x%08x\n", results[1], af.rgoAction[1].dwObjID); - todo_wine ok (IsEqualGUID(&GUID_SysKeyboard, &af.rgoAction[1].guidInstance), "Action should be mapped to keyboard\n"); + ok (IsEqualGUID(&GUID_SysKeyboard, &af.rgoAction[1].guidInstance), "Action should be mapped to keyboard\n"); af.guidActionMap = mapping_guid; /* Hard case. Customized mapping, save, ask for previous map and read it back */