X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTextMetrics.C;h=63a287a160ca8be97b465852b4d10454c1bc6822;hb=e5a46922e916a06ad1b958d5895cc3cfb4f13d2c;hp=85a90529b6fd79e1579f604f992d42baced58046;hpb=1f83a88cd65f800100e051f058231b5d0e31315e;p=lyx.git diff --git a/src/TextMetrics.C b/src/TextMetrics.C index 85a90529b6..63a287a160 100644 --- a/src/TextMetrics.C +++ b/src/TextMetrics.C @@ -258,6 +258,10 @@ bool TextMetrics::redoParagraph(pit_type const pit) par_metrics_[pit] = pm; + // Update the row change statuses. The painter will need that info + // in order to know which row has to be repainted. + par_metrics_[pit].updateRowChangeStatus(); + return changed; } @@ -703,11 +707,12 @@ void TextMetrics::setHeightOfRow(pit_type const pit, // environment. pit_type prev = depthHook(pit, pars, par.getDepth()); + Paragraph const & prevpar = pars[prev]; if (prev != pit - && pars[prev].layout() == layout - && pars[prev].getDepth() == par.getDepth() - && pars[prev].getLabelWidthString() == par.getLabelWidthString()) - { + && prevpar.layout() == layout + && prevpar.getDepth() == par.getDepth() + && prevpar.getLabelWidthString() + == par.getLabelWidthString()) { layoutasc = layout->itemsep * dh; } else if (pit != 0 || row.pos() != 0) { if (layout->topsep > 0) @@ -718,8 +723,9 @@ void TextMetrics::setHeightOfRow(pit_type const pit, if (prev != pit_type(pars.size())) { maxasc += int(pars[prev].layout()->parsep * dh); } else if (pit != 0) { - if (pars[pit - 1].getDepth() != 0 || - pars[pit - 1].layout() == layout) { + Paragraph const & prevpar = pars[pit - 1]; + if (prevpar.getDepth() != 0 || + prevpar.layout() == layout) { maxasc += int(layout->parsep * dh); } }