Alfredo Braunstein wrote: > Richard Heck wrote: > >> there before, if it is there now. I'm still not sure I understand these >> ParIterators---though thanks for the earlier info---so if you want to > > > Just to add something to JMarc's explanation (and because they it is said > that a picture is worth at least 10^3 words) I'm attaching a diagram. > > This pictures a somewhat simple situation (It doesn't have multiple > paragraphs, nor multiple idx inside one inset, but one could say that > these are details ;-). > > The stack of greyed nodes form a DocIterator pointing to the cursor > position (before the D), and DocIterator::forwardPos should move > "logically" between nodes in the tree exactly as cursor-right in the lyx > window, in this order: > > Inset0, A, Inset1, B, Inset3, C, END3, END1, Inset2, Inset4, D, Inset5, E, > END5, F, END4, END2, G, END0
In case someone wonders, Inset0 is the root inset, which is a member of Buffer::Impl (in Buffer.cpp). Actually there is a small exception and the Inset0 node is not a valid cursor position (even if you can build a DocIterator "pointing there"). (thanks Pavel) A/