Signed-off-by: Rémi Bernon rbernon@codeweavers.com ---
We are going to implement more accurate checks in SetParameters and these calls seem to be required in order to start an effect.
dlls/joy.cpl/main.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/dlls/joy.cpl/main.c b/dlls/joy.cpl/main.c index 57c188a5df1..3c9949b7ef3 100644 --- a/dlls/joy.cpl/main.c +++ b/dlls/joy.cpl/main.c @@ -726,6 +726,9 @@ static void ff_handle_effectchange(HWND hwnd, struct Joystick *joy) if (sel < 0) return;
joy->chosen_effect = sel; + IDirectInputDevice8_Unacquire(joy->device); + IDirectInputDevice8_SetCooperativeLevel(joy->device, GetAncestor(hwnd, GA_ROOT), DISCL_BACKGROUND|DISCL_EXCLUSIVE); + IDirectInputDevice8_Acquire(joy->device); }
static DWORD WINAPI ff_input_thread(void *param)
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/joy.cpl/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/joy.cpl/main.c b/dlls/joy.cpl/main.c index 3c9949b7ef3..1498021db66 100644 --- a/dlls/joy.cpl/main.c +++ b/dlls/joy.cpl/main.c @@ -809,7 +809,7 @@ static BOOL CALLBACK ff_effects_callback(const DIEFFECTINFOW *pdei, void *pvRef) ZeroMemory(&dieffect, sizeof(dieffect));
dieffect.dwSize = sizeof(dieffect); - dieffect.dwFlags = DIEFF_CARTESIAN; + dieffect.dwFlags = DIEFF_CARTESIAN|DIEFF_OBJECTOFFSETS; dieffect.dwDuration = FF_PLAY_TIME;
dieffect.cAxes = 2;