If there are many (input) events, the timer in KisSignalCompressor might actually take a long time (>500 ms) to fire. This means that, among others, update events can take a long time to happen, giving the program a laggy appearance.
Using heavy scrubbing on the zoom slider in the overview docker panel, you can reproduce such a situation: the zooming canvas gets jerky (see test plan below for details).
The implications of this change, though short, might not be trivial:
- if KisSignalCompressor gets called from a non-main thread, slotTimerExpired might now also be called from that thread, whereas before it was guaranteed to be called from QTimer's callback, which is probably always the main thread
- In very bad circumstances, we might now trigger endless recursions, which was impossible before. We could add additional protection against that in the new code in KisSignalCompressor by basically checking if we are in a call we ourselves started.