mouse_hook.c sets event.timestamp from GetTickCount64() (milliseconds). confirmStartTime therefore uses milliseconds, but debounce_check_deferred_releases() obtains now from debounce_get_timestamp(), which returns microseconds when QPC is available.
The code then subtracts these incompatible timestamps, causing the 150 ms Smart Drag confirmation timeout to expire incorrectly.
Use a single timebase/unit for both timestamps.
mouse_hook.csetsevent.timestampfromGetTickCount64()(milliseconds).confirmStartTimetherefore uses milliseconds, butdebounce_check_deferred_releases()obtainsnowfromdebounce_get_timestamp(), which returns microseconds when QPC is available.The code then subtracts these incompatible timestamps, causing the 150 ms Smart Drag confirmation timeout to expire incorrectly.
Use a single timebase/unit for both timestamps.