TextEditor starts Timer on setText and only stops it on FocusLost, why?

We have an UI and it uses a lot of TextEditors, we find TextEditors easier to work with than Labels.
TextEditor uses a Timer, which seems ok, but it is almost always running. And if you have a lot of TextEditors this can drain performance quite a bit.

Can you guys have a look, because i don’t think the Timer should be running all the time.
Right now this is the situation:

The TextEditor::moveCaret method starts a Timer.
TextEditor::moveCaret is called by TextEditor::setText and is only ever stopped in TextEditor::focusLost
So for each TextEditor you create and call setText on a Timer is running, and they will only be stopped if focusLost is called!
That’s ok if you only have a few but certainly not when you have a couple of hundred.

Seconded, I’ve run into this problem as well. At the very least I think setText() should document this behaviour.

Thanks for reporting. I’ve added a patch which should make the TextEditor slightly more conservative about starting the timer:

Thank you @reuk for looking into this, we’ll pick up the patch.