mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-03 08:28:25 +00:00
3599285019
Actually the workaround that is used to show parenthesis in the right direction is not needed any more, since this is part of the unicode bidi writing algorithm. This fixes at the same time the use of [] or as delimiters in arabic, which was wrong on screen. Note that there is a problem with hebrew, but this will require a fileformat change.
52 lines
1.9 KiB
Plaintext
52 lines
1.9 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 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.
|
|
|
|
* Get rid of LyXRC::rtl_support, which does not have a real use case.
|
|
|
|
* Fix display of [] and {} delimiters in Arabic scripts.
|