2014-03-03 14:29:37 +00:00
|
|
|
|
|
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
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.
|
2013-07-23 14:24:01 +00:00
|
|
|
|
2014-05-12 09:02:22 +00:00
|
|
|
The bugs fixed and caused by this branch are tracked at ticket #9003:
|
|
|
|
http://www.lyx.org/trac/ticket/9003
|
2013-06-18 08:18:32 +00:00
|
|
|
|
2014-06-13 14:33:58 +00:00
|
|
|
|
2013-06-18 08:18:32 +00:00
|
|
|
What is done:
|
2013-07-23 14:24:01 +00:00
|
|
|
|
2013-06-18 08:18:32 +00:00
|
|
|
* Make TextMetrics methods operate on Row objects: breakRow and
|
2013-06-25 06:18:25 +00:00
|
|
|
setRowHeight instead of rowBreakPoint and rowHeight.
|
|
|
|
|
2014-03-03 14:29:37 +00:00
|
|
|
* 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.
|
2013-06-25 06:18:25 +00:00
|
|
|
|
2013-12-20 13:02:31 +00:00
|
|
|
* 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.
|
2013-07-21 18:22:32 +00:00
|
|
|
|
2014-07-08 21:12:09 +00:00
|
|
|
* Get rid of lyxrc.force_paint_single_char. This was a workaround that
|
|
|
|
is not necessary anymore.
|
2014-05-14 13:36:44 +00:00
|
|
|
|
|
|
|
* Implement proper string metrics computation (with cache). Remove
|
2013-07-21 18:22:32 +00:00
|
|
|
useless workarounds which disable kerning and ligatures.
|
2013-06-18 08:18:32 +00:00
|
|
|
|
2014-06-13 14:33:58 +00:00
|
|
|
* Draw also RtL text string-wise. This speeds-up drawing.
|
2013-06-25 06:18:25 +00:00
|
|
|
|
2014-05-02 13:03:20 +00:00
|
|
|
* 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.
|
2013-10-11 14:12:20 +00:00
|
|
|
|
2014-05-23 16:59:53 +00:00
|
|
|
* Do not cut strings at selection boundary in RowPainter. This avoids
|
|
|
|
ligature/kerning breaking in latin text, and bad rendering problems
|
|
|
|
in Arabic.
|
|
|
|
|
2014-06-13 14:33:58 +00:00
|
|
|
* Remove homebrew Arabic and Hebrew support from Encoding.cpp. We now
|
|
|
|
rely on Qt to do handle complex scripts.
|
2013-10-11 14:12:20 +00:00
|
|
|
|
2014-03-03 14:29:37 +00:00
|
|
|
|
2014-06-13 14:33:58 +00:00
|
|
|
Next steps:
|
2014-03-03 14:29:37 +00:00
|
|
|
|
2014-05-12 09:02:22 +00:00
|
|
|
* Maybe get rid of LyXRC::rtl_support, which does not have a real use case.
|