The redraw branch <https://github.com/leo-editor/leo-editor/tree/redraw> is 
ready for testing. This branch is associated with #539: Leo's redraw code 
should be redesigned. <https://github.com/leo-editor/leo-editor/issues/539>

This project looks like a complete success. It makes major improvements to 
Leo's redraw logic with virtually no effect on existing code.  The 
highlights of the changes are as follows:

1. Redrawing the screen happens *only *as the result of an explicit call to 
c.redraw.  In particular, neither c.selectPosition nor its helpers redraw 
the screen immediately.  However, cc.selectChapterForPosition ensures that 
a redraw happens eventually using...

2. c.redraw_later() sets a flag requesting that c.outerUpdate call c.redraw 
if necessary.  Any call to c.redraw resets this flag. 

3. c.disable_redraw() sets a flag disabling all outline redraws. 
c.enable_redraw() re-enables redrawing. Use these methods as follows:

try:
    c.disable_redraw()
    # Code that might otherwise redraw the tree.
finally:
    c.enable_redraw()

This pattern is essential in the new git-diff 
<https://github.com/leo-editor/leo-editor/issues/501> code. Lots of redraw 
code changed, but in similar and straightforward ways. In effect, the new 
code is exactly the same as the old unless c.disable_redraw() has been 
called, I do not expect problems here.

4. c.outerUpdate has been drastically simplified.  It now only handles 
requests for delayed focus changes (as before) and the new delayed redraws.

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to