Small updates to painting analysis document

This commit is contained in:
Jean-Marc Lasgouttes 2023-09-10 20:24:39 +02:00
parent be1bf5c05c
commit 9c49e72f7e

View File

@ -20,9 +20,9 @@ following section. Some actions are proposed.
** SinglePar update ** SinglePar update
This flag only has an effect in the current BufferView, but I think it This flag only has an effect in the current BufferView and at
is useful in other views too. Doing this will require some work on the top-level, but I think it is useful in other views too. Doing this
update pipeline, though. will require some work on the update pipeline, though.
** Buffer::change issues ** Buffer::change issues
@ -76,11 +76,8 @@ a lot the amount of stuff to redraw.
It should not be necessary to access the Paragraph object to draw. It should not be necessary to access the Paragraph object to draw.
Adding the static elements to Row is a lot of work, but worth it IMO. Adding the static elements to Row is a lot of work, but worth it IMO.
** do not add the vertical margin of main text to first/last row
Would make code cleaner. Probably no so difficult.
** When a paragraph ends with a newline, compute correctly the height of the extra row. ** When a paragraph ends with a newline, compute correctly the height of the extra row.
** Merging bv::updateMetrics and tm::metrics ** Merging bv::updateMetrics and tm::metrics
While the full metrics computation tries hard to limit the number of While the full metrics computation tries hard to limit the number of
@ -148,6 +145,9 @@ tm::redoParagraph will call Inset::metrics for each inset. In the case
of text insets, this will invoke recursively tm::metrics, which redoes of text insets, this will invoke recursively tm::metrics, which redoes
all the paragraphs of the inset. all the paragraphs of the inset.
Then, a single big row is created in tm::tokenizeParagraph, which is
later broken in multiple rows by tm::breakParagraph.
At the end of the function, bv::updatePosCache is called. It triggers At the end of the function, bv::updatePosCache is called. It triggers
a repaint of the document with a NullPainter (a painter that does a repaint of the document with a NullPainter (a painter that does
nothing). This has the effect of caching all insets positions. nothing). This has the effect of caching all insets positions.