2012/11/13 Eli Zaretskii <[email protected]> > We have very different ideas about what the second caret indicates. > So I don't think it is worth our while to continue this discussion. >
I don't think so, the two carets, in the "rare" cases where they may appear, are indicating the two positions where text expansion will appear, but they assume you'll be still in he same context as the *existing* previous and/or next character, they cannot infer other contexts which have still not be created. If you are in the middle of an Arabic word, the caret should not take into account the possibility of inserting a Latin letter, the caret just displays the current state of the insertion point which may be at two positions, one for each direction when the previous and next context determined by the UBA are different. Trying to display everything that you could do (insertion, backward or forward deletion, or just a non-editing move), and that has still not been decided by the user will just complicate things for everyone. Stay focused only to correctly render the current state on each side of the insertion point, and nothing else. Even you concept of a "primary" and "secondary" caret, when two are needed and must be displayed is wrong : both are equally important (one indicates the state in previous context, the other one indicates the next context, each one could be in either direction, and these directions should be made visible on both carets, and it will be clearly enough to indicate which one of the two carets is showing the previous context and which one indicates the next context). The ONLY condition required for displaying two carets (instead of just one) is the case where the previous character (or any unbreakable grapheme cluster) and the next character (or any unbreakable grapheme cluster) are in opposite visual directions (as determined by the UBA). In all other situations, both carets will be necessarily superposed visually (and showing for each one the *same* UBA visual direction, if this direction is displayed explicitly, which is not absolutely necessary), making them undistinctable and reduced as if there was a single one.

