mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
9d5c947110
It was not honored anymore.
57 lines
2.0 KiB
Plaintext
57 lines
2.0 KiB
Plaintext
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
PLEASE DO NOT DO WORK ON TOP OF THIS BRANCH.
|
|
I INTEND TO REWRITE HISTORY LATER!!!
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
This branch is where I (jmarc) try to implement string-wise metrics
|
|
computation. The goal is to have both good metrics computation (and
|
|
font with proper kerning and ligatures) and better performance than
|
|
what we have with force_paint_single_char. Moreover there has been
|
|
some code factorization in TextMetrics, where the same row-breaking
|
|
algorithm was basically implemented 3 times.
|
|
|
|
The bugs fixed and caused by this branch are tracked at ticket #9003:
|
|
http://www.lyx.org/trac/ticket/9003
|
|
|
|
|
|
What is done:
|
|
|
|
* Make TextMetrics methods operate on Row objects: breakRow and
|
|
setRowHeight instead of rowBreakPoint and rowHeight.
|
|
|
|
* Change breakRow operation to operate at strings level to compute
|
|
metrics The list of elements is stored in the row object in visual
|
|
ordering, not logical. This will eventually allow to get rid of the
|
|
Bidi class.
|
|
|
|
* rename getColumnNearX to getPosNearX (and change code accordingly).
|
|
It does not make sense to return a position relative to the start of
|
|
row, since nobody needs this.
|
|
|
|
* Re-implement cursorX and getPosNearX using row elements.
|
|
|
|
* Get rid of lyxrc.force_paint_single_char. This was a workaround that
|
|
is not necessary anymore.
|
|
|
|
* Implement proper string metrics computation (with cache). Remove
|
|
useless workarounds which disable kerning and ligatures.
|
|
|
|
* Draw also RtL text string-wise. This speeds-up drawing.
|
|
|
|
* Do not cut strings at separators in RowPainter when text is not
|
|
justified. This speeds-up painting by reducing the number of strings
|
|
to draw.
|
|
|
|
* Do not cut strings at selection boundary in RowPainter. This avoids
|
|
ligature/kerning breaking in latin text, and bad rendering problems
|
|
in Arabic.
|
|
|
|
* Remove homebrew Arabic and Hebrew support from Encoding.cpp. We now
|
|
rely on Qt to do handle complex scripts.
|
|
|
|
|
|
Next steps:
|
|
|
|
* Maybe get rid of LyXRC::rtl_support, which does not have a real use case.
|