[Lazarus] IDE Editor incredibly slow on newer GTK2

Martin lazarus at mfriebe.de
Sat Mar 24 23:17:58 CET 2012


On 24/03/2012 21:40, Martin wrote:
> On 24/03/2012 21:31, Martin wrote:
>> On 24/03/2012 21:02, Bernd wrote:
>>> 2012/3/24 Martin<lazarus at mfriebe.de>:
>>>
>>>> Compile the SynEdit package with the following defines
>>>> SynDebug
>>>> SynCaretDebug
>>>> SYNSCROLLDEBUG
>>>> VerboseSynEditInvalidate
>>>> SynCheckPaintLock
>>>>
>>>> and get a logfile.
>>>>
>>>> Please also try if switching the overview gutter (right hand site)
>>>> (Options/Editor/Display) makes a different.  IIRC some WS does 
>>>> unnecessary
>>>> invalidates (but not as bad as you described)
>>>>
>>>> Or switch off highlight of all occurrences of the word under caret
>>>> (obviously that can lead to a full invalidate, but usually it has a 
>>>> time
>>>> delay, so it does not affect editing)
>>> I will try these defines and make the log (tomorrow). The right
>>> overview gutter (and also the left gutter) does not have any notable
>>> effect.
>>>
>>
>> Ok, forget those defines. (WEll we maybe later...)
>>
>> Try what happens with
>>   SynScrollBarWorkaround
>> defined
>>
> It may make both scrollbars permamently on.
>
>
> There is an old bug in the gtk code, that will show a scrollbar, even 
> if not requested.
>
> That happens in SynEdit. SynEdit works around by hidding it again, 
> before any painting is  done. But it is possible that this still adds 
> some extra work somewhere...

If I am guessing right, then it is a result of  
http://bugs.freepascal.org/view.php?id=16458

I added a workaround. Define:    SynNewScrollBarUpdate

BUT: This works in the IDE. It breaks standard SynEdit.
If Scrollbars are set to SSNone (or either one is forcefully hidden), 
then it is still possible to scroll (including by wheel)
With the workaround that breaks. (Unless you configure the SynEdit with 
"MouseActions"





More information about the Lazarus mailing list