[Lazarus] Caret is not blinking in Unix

Martin lazarus at mfriebe.de
Fri Apr 5 13:14:42 CEST 2013


On 05/04/2013 12:04, Mehmet Erol Sanliturk wrote:
>
> Previously I have sent the following message :
>
> http://lists.lazarus.freepascal.org/pipermail/lazarus/2013-March/079951.html
>
> A help is really appreciated very much .

> On TcustomControl canvas covering all of the form client area , the caret
> is NOT blinking in
> Unix ( FreeBSD , Fedora ( 17 , 18 ) ) , but it is blinking in Windows .
>
> Lazarus is installed and used as it is without any change .
>
> What can be done to make the caret blinking in Unix ?

On WIndows the caret is drawn by the OS. This includes hiding it. On 
windows (afaik) this is done by inverting pixel colors. Neither drawing, 
nor hiding does require the Control to paint.

AFAIK on linux, the caret is drawn by the Widgetsetcode provided by 
Lazarus. And hiding the caret, is done by invalidating the area, and 
therefore only effective, if the control repaints itself.

I do not know what goes wrong in your case, but here are some pointers:
- Check that your control receives regular paint messages, and that it 
does actually paint the area. (It will get a paint messages for a small 
clip rect only, and must paint into that clip rect.
- If no paint messages are received I have no idea, but maybe it is 
timer related (I haven't looked that deep, but I guess the caret is 
triggered by a timer.





More information about the Lazarus mailing list