commit 4bd5a7e883b76f36d1ebc3ae1c9a6765da5165f6 Author: Jean-Marc Lasgouttes <lasgout...@lyx.org> Date: Mon Jun 30 15:55:30 2014 +0200
Move some text from the readme file to relevant source files diff --git a/00README_STR_METRICS_BRANCH b/00README_STR_METRICS_BRANCH index 6668623..1292390 100644 --- a/00README_STR_METRICS_BRANCH +++ b/00README_STR_METRICS_BRANCH @@ -11,8 +11,6 @@ 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. -Currently everything is supposed to work for both LTR and RTL text. - The bugs fixed and caused by this branch are tracked at ticket #9003: http://www.lyx.org/trac/ticket/9003 @@ -59,26 +57,3 @@ Next steps: in the source. * Maybe get rid of LyXRC::rtl_support, which does not have a real use case. - -* Fix bugs uncovered by testing. - -* Profile and see how performance can be improved. - - -Steps for later (aka out of the scope of this branch): - -* Re-implement row painting using row elements. This is not difficult - in principle, but the code is intricate and needs some careful - analysis. The first thing that needs to be done is to break row - elements with the same criteria. Currently breakRow does not - consider on-the-fly spell-checking, but it is not clear to me that - it is required. Moreover, this thing would only work if we are sure - that the Row object is up-to-date when drawing happens. This depends - on the update machinery. - - This would allow to get rid of the Bidi.cpp code. - -* Change Row object to operate only on integers and not doubles. Then, - rewrite the computation of spacing in justified paragraphs so that - strings can be drawn without cutting at separators. This will improve - performance. diff --git a/src/Row.h b/src/Row.h index a1e707e..04890f7 100644 --- a/src/Row.h +++ b/src/Row.h @@ -30,6 +30,18 @@ class DocIterator; class Inset; /** + * FIXME: Change Row object to operate only on integers and not doubles. + * + * This use of double is only useful to distribute the extra + * horizontal space between separators in justified text. If we do + * integer arithmetic, then it is possible to have two groups of + * separators, with size s or s+1. Then strings can be drawn without + * cutting at separators in justfied text, as it is done in + * non-justified text. This will improve performance. + */ + + +/** * An on-screen row of text. A paragraph is broken into a RowList for * display. Each Row contains a tokenized description of the contents * of the line. diff --git a/src/rowpainter.h b/src/rowpainter.h index ae1a590..7e29c0e 100644 --- a/src/rowpainter.h +++ b/src/rowpainter.h @@ -37,6 +37,21 @@ class TextMetrics; namespace frontend { class Painter; } /** + * FIXME: Re-implement row painting using row elements. + * + * This is not difficult in principle, but the code is intricate and + * needs some careful analysis. The first thing that needs to be done + * is to break row elements with the same criteria. Currently breakRow + * does not consider on-the-fly spell-checking, but it is not clear to + * me that it is required. Moreover, this thing would only work if we + * are sure that the Row object is up-to-date when drawing happens. + * This depends on the update machinery. + * + * This would allow to get rid of the Bidi class. + */ + + +/** * A class used for painting an individual row of text. * FIXME: get rid of that class. */