[Lazarus] Lazarus code editor: what happened with the caret?

Martin Frb lazarus at mfriebe.de
Fri Oct 6 22:43:56 CEST 2017


Latest SynEdit uses a custom drawn caret.

This was introduced to enable multiple carets. That is: having several 
carets at the same time, to type and edit several locations simultaneously.
(e.g shift-alt down, gives you 2 carets, one in each row)

Since Windows does not allow for more than one caret to be created, it 
was necessary to draw them directly.

See components\synedit\synpluginmulticaret.pp
line 1713
   if ScreenCaret.Painter.ClassType = TSynEditScreenCaretPainterSystem then
     ScreenCaret.ChangePainter(TSynEditScreenCaretPainterInternal);

Comment this out. (multicaret will not work / only one caret will be 
visible).

Or change
components\synedit\syneditpointclasses.pas
line 3085
TSynEditScreenCaret.ChangePainter
to always set  TSynEditScreenCaretPainterSystem

On 06/10/2017 20:57, Lubos Pintes via Lazarus wrote:
> Hello,
> After years, I just built a fresh Lazarus from SVN. I ran the IDE, and 
> noticed immediately that a code editor is completely unusable to 
> screen reader. I am running Windows and using NVDA. In the past, the 
> code editor was partially usable. But now, NVDA is unable to see the 
> caret.
> So I would like to ask: is caret drawn in some nonstandard way? Or 
> could I set any settings in options to try to fix this?
>




More information about the Lazarus mailing list