I noticed this after building Geany on OS X using GTK+ Quartz. Scintilla runs noticeably slow under this particular configuration (OS X 10.5, 1.5GHz PowerPC G4, 1.25GB RAM).
The brace highlighting code causes the full Scintilla display to redraw, including the selection margin. (Easily seen using Quartz Debug and the "flash screen updates" option.)
This is a huge performance hit just to change the color of two characters.
I tried changing the Redraw() call in SetBraceHighlight() to InvalidateRange(), but it does not help because CheckForChangeOutsidePaint() can cancel any current painting and force the full display to redraw any way.
I hope I haven't misdiagnosed this; I'm unfamiliar with Scintilla's painting code.
Log in to post a comment.