The redraw branch <> is 
ready for testing. This branch is associated with #539: Leo's redraw code 
should be redesigned. <>

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:

    # Code that might otherwise redraw the tree.

This pattern is essential in the new git-diff 
<> 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 post to this group, send email to
Visit this group at
For more options, visit

Reply via email to