Stefan Schimanski wrote:
As promised, here it is. This is the way to do it. It includes our
former patch for cursorLeft/Right to avoid boundary magic on
RTL-boundaries.
I don't understand what I'm supposed to apply this patch against.
@Dov: For the example where your patch was wrong, make a selection,
starting in an RTL paragraph, ending in a LTR paragraph. One of the two
sides will "see" the correct RTL setting by looking at the buffer's
cursor. The other one (the cursorX call for the anchor) will also look
there, but the information in the buffer's cursor has no relation to the
that position.
Stefan
I don't totally follow your explanation, but the fact is that the end
behavior is still correct (using Elazar's patch) in the case you
describe. OTOH, the selection patch from yesterday is *not* behaving
correctly.
To illustrate (with Elazar's patch for cursor movement, your patch from
yesterday for selection):
[IHG]FED
When pressing LEFT, cursor moves from after E -> after F -> Before G
(inside footnote). This is correct.
When selecting by SHIFT and pressing LEFT starting after D, selection
shows up as: "E" -> "[IHG]FE". But really, only "FE" is selected (you
can convince yourself of this by deleting). Continuing to select LEFT
again doesn't show any difference in the way the selection is, but the
cursor correctly moves to after the inset, and now everything really is
selected.
I haven't tried your new patch yet (see above), but if it's using the
same logic as the selection, then it may also be wrong... I'll try it
anyway if you'll explain what to apply it against...
Thanks!
Dov