]> git.lyx.org Git - lyx.git/blobdiff - src/TextMetrics.C
* GuiView.C (updateTab): do not update early if current tab has
[lyx.git] / src / TextMetrics.C
index 85a90529b6fd79e1579f604f992d42baced58046..63a287a160ca8be97b465852b4d10454c1bc6822 100644 (file)
@@ -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);
                        }
                }