This implements the ideas in the thread: https://groups.google.com/forum/#!topic/leo-editor/Wd0NtBLEZZk
The general idea is to maintain a list of expanded *positions* in vnodes. The drawing code calls c.shouldBeExpanded rather than p.isExpanded. The change has already had some unexpected repercussions: p.moveToVisBack and p.moveToVisNext must also call c.shouldBeExpanded. The new appears to work (and all unit tests pass) but many problems could appear. Please use caution and report any problems immediately. Edward P.S. At present, contracting any node contracts all clones of that node. This is simplest to do, and may be most useful, but it's not so intuitive. Let me know what you think of this mode of operation. I may experiment further myself. EKR -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/groups/opt_out.
