From: Jean-Marc Lasgouttes Date: Wed, 11 May 2016 12:16:08 +0000 (+0200) Subject: Update PAINTING_ANALYSIS and add a new task X-Git-Tag: 2.3.0alpha1~1623 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=095c390fe2d7c983ccb0228d73c09b8da58bc206;p=features.git Update PAINTING_ANALYSIS and add a new task --- diff --git a/development/PAINTING_ANALYSIS b/development/PAINTING_ANALYSIS index acb033d7fe..78719f5373 100644 --- a/development/PAINTING_ANALYSIS +++ b/development/PAINTING_ANALYSIS @@ -58,15 +58,14 @@ The global idea would be to extend FitCursor to cover also horizontal cursor. -* Proposals - - * Clean-up of drawing code The goal is to make painting with drawing disable fast enough that it can be used after every metrics computation. Then we can separate real drawing from metrics. +Other changes are only clean-ups. + ** DONE RowPainter Inset position is set in paintInset, paintOnlyInsets, and paintText. @@ -114,29 +113,14 @@ topBottomSpace parameter should be removed after that. The helper version should return a Row::Element instead of an InsetTable. -** TODO make Inset::display() more useful +** Do not make RowPainter operations update x_ -[This has been started in the features/betterbreak branch. Time will -tell whether it really helps. The question in particular is the -handling of separator insets] +It is better to make them const and update x_ separately. -Extending the DisplayType enum would allow to remove special cases -from the code. - -The enumeration could be like -: Inline = 0 -: BreakBefore = 1 // break row before this inset -: BreakAfter = 2 // break row after this inset -: CanBreakAfter = 4 // optionally break row after this inset -: AlignLeft = 8 -: AlignRight = 16 -: NoBoundary = 32 // do not allow cursor to go at the end of the row -: //before display inset -: Display = BreakBefore|BreakAfter - -A display equation would be Display, other could be Display|AlignLeft -BreakAfter can be used by Newline or separator insets -CanBreakAfter can be used by the optional hyphen InsetSpecialChar. +Then it will be possible to reorder the painting of the different +elements. In particular, if text is painted last, it will be more +visible in the presence of underlines (foreign language, change +tracking, spell check). ** Set inset position during metrics phase @@ -222,12 +206,8 @@ update flag is Update::None. ** Metrics computation This is triggered by bv::updateMetrics, which calls tm::redoParagraph for - + all visible paragraphs - + paragraph above the screen (up to one page) - + paragraphs below the screen (up to one page again) - -The paragraphs outside of the screen are required to make PageUp/Down -work. +all visible paragraphs. Paragraphs above or below the screen (needed +for page up/down) and computed as needed. tm::redoParagraph will call Inset::metrics for each inset. In the case of text insets, this will invoke recursively tm::metrics, which redoes