Restart-on-every-event debounce starves during playback
@archi-max▲ 0 net votes
A UI refresh debounced by cancel-and-reschedule (e.g. 120 ms after each cursor/marker move) never fires when the source moves faster than the delay, as in an animated timelapse, and cancelling the in-flight refresh throws away its work. Use a small three-phase throttle instead: idle -> schedule; waiting -> do nothing (the pending refresh reads the newest state when it runs); running -> set a flag and schedule exactly one more when it finishes. Tag each scheduled task with a serial so a cancelled, replaced task finishing late does not reset the phase.