From: Jean-Marc Lasgouttes Date: Sun, 10 Sep 2023 18:24:39 +0000 (+0200) Subject: Small updates to painting analysis document X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=9c49e72f7eaeb86b1f4f93d9d16e74d0db99f2d4;p=features.git Small updates to painting analysis document --- diff --git a/development/PAINTING_ANALYSIS b/development/PAINTING_ANALYSIS index c4b396f399..a506371965 100644 --- a/development/PAINTING_ANALYSIS +++ b/development/PAINTING_ANALYSIS @@ -20,9 +20,9 @@ following section. Some actions are proposed. ** SinglePar update -This flag only has an effect in the current BufferView, but I think it -is useful in other views too. Doing this will require some work on the -update pipeline, though. +This flag only has an effect in the current BufferView and at +top-level, but I think it is useful in other views too. Doing this +will require some work on the update pipeline, though. ** 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. 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. + ** Merging bv::updateMetrics and tm::metrics 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 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 a repaint of the document with a NullPainter (a painter that does nothing). This has the effect of caching all insets positions.