```
This change aims to improve stabilizer timing and visual feedback:
- Perform delayed paint during `KisToolFreehandHelper::paint` (pointer event) and use a timer for backup.
```
Moved the paint code to be called during ``KisToolFreehandHelper::paint`` since this is how it's done for other smoothing methods and no smoothing. This shouldn't perform any worse than those. Removing the timer event dispatching might've caused some improvement too, but I haven't profiled for that.
~~I kept the delayed paint timer running for whenever the pointer events get spaced too far in time. But I am tempted to just remove the timer completely (and also `stabilizerDelayedPaintInterval` config) because it doesn't seem to be something that would happen, other than the system being under load which would likely prevent the canvas from being redrawn anyway.~~ ~~I removed the delayed paint timer~~ I changed the delayed paint timer to a constant, but I haven't yet changed the config options, will do that later. I am thinking of making a boolean option to toggle the delayed paint helper and make it enabled on all platforms by default. of 20ms and removed the `stabilizerDelayedPaintInterval` config, As for now,replaced it with `stabilizerDelayedPaint`. set `stabilizerDThe delayedP paintInterval` to be less than `stabilizerSampleSize` to enable delayed paint,ing is now enabled on all platforms by default. and the other way roundSet config `stabilizerDelayedPaint` (boolean) to enable/disable it.
Calling `requestExplicitUpdateOutline` during delayed paint is not needed anymore, but still needed during the timer. ~~Actually it might not even be needed before these changes?~~ (It was needed because a delayed paint timer trigger can be after a pointer event, and not calling it would cause the outline to detach from the cursor if using a mouse.)
Regarding the stabilizer event sampling timer, please see T6440#100143. You can change line 686 of `kis_tool_freehand_helper.cpp` between `Qt::PreciseTimer` and `Qt::CoarseTimer` to test the effect.