See also:
http://bugs.freepascal.org/view.php?id=11716
http://bugs.freepascal.org/view.php?id=11474
Sometimes Synedit moves the cursor around to perform replace, search or
other operations, and in the end returns it to the original location,
(or a new location that may have been visible before).
- The flicker, repaints can be solved on there own (*not* the
question/purpose of this mail)
- But while the caret is set back to where it was => the
topline/leftchar may have been modified, and that may not have been
needed/wanted
There are (at least) 2 approaches to solve this. (and maybe they should
even go in parallel) Any opinions / other ideas are welcome.
- Rewrite all code, never to move the caret
=> instead pass the desired => work location as arguments to
functions/procedures
- Use a similar approach like Emacs "save-excursion"
This is like fPaintlock to painting, Just it would be fCaretLock.
While active:
- the Caret would not change thinks like topline/leftchar ....
- the original position (before caret lock (can be recursive)) would
be known (and if needed be used for displaying the caret
[so we should *never* have a paint event in the middle of fCaretLock]
- CaretUnlock restores the position
Comments, please?
Best Regards
Martin
_______________________________________________
Lazarus mailing list
[email protected]
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus