metrics are computed. The list of elements is stored in the row
object in visual ordering, not logical.
-* Re-implement cursorX and getColumnNearX using row elements
+* Re-implement cursorX and getColumnNearX using row elements.
* Implement proper string metrics computation (with cache), when
lyxrc.force_paint_single_char is false. In this case, remove also
useless workarounds which disable kerning and ligatures.
+Next steps needed:
+
+* check what happens with arabic and/or hebrew text. There may be some
+ problems related to compose characters. I suspect that some code is
+ needed in FontMetrics::width.
+
Next possible steps:
-* Get rid of old code of cursorX and getColumnNearX (which have been
+* Get rid of old code in cursorX and getColumnNearX; it has been
kept for comparison purpose, guarded with KEEP_OLD_METRICS_CODE in
- order to check computations).
+ order to check computations.
* Re-implement row painting using row elements. This is not difficult
in principle, but the code is intricate and needs some careful
actual text, not default font.
* When cursor is after a LTR separator just before a RTL chunk, the
- cursor posiiton is computed better with the new code.
+ cursor position is computed better with the new code.
Other differences (aka real bugs)
-You tell me.
+* there are still difference in what breaks words. In particular,
+ RowPainter breaks strings at: selection end, spellchecking
+ extremity.