From bcc113a7fd05bf85d93af6699f6dce4e158ae87b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Mon, 14 Feb 2022 17:26:17 +0100 Subject: [PATCH] winebus.sys: Request haptics effect to stop when only when needed. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of stopping them, then re-starting them when a new effect is requested. Signed-off-by: RĂ©mi Bernon Signed-off-by: Alexandre Julliard --- dlls/winebus.sys/bus_sdl.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dlls/winebus.sys/bus_sdl.c b/dlls/winebus.sys/bus_sdl.c index d036ec2b98e..eda37e42c2c 100644 --- a/dlls/winebus.sys/bus_sdl.c +++ b/dlls/winebus.sys/bus_sdl.c @@ -416,12 +416,15 @@ NTSTATUS sdl_device_haptics_start(struct unix_device *iface, UINT duration_ms, effect.leftright.large_magnitude = rumble_intensity; effect.leftright.small_magnitude = buzz_intensity; - if (impl->effect_support & WINE_SDL_JOYSTICK_RUMBLE) - pSDL_JoystickRumble(impl->sdl_joystick, 0, 0, 0); - else if (impl->sdl_haptic) - pSDL_HapticStopAll(impl->sdl_haptic); if (!effect.leftright.large_magnitude && !effect.leftright.small_magnitude) + { + if (impl->effect_support & WINE_SDL_JOYSTICK_RUMBLE) + pSDL_JoystickRumble(impl->sdl_joystick, 0, 0, 0); + else if (impl->sdl_haptic) + pSDL_HapticStopAll(impl->sdl_haptic); + return STATUS_SUCCESS; + } if (impl->effect_support & SDL_HAPTIC_LEFTRIGHT) {