]> git.lyx.org Git - features.git/blobdiff - src/TextMetrics.cpp
FindAdv: Simplify search for space also if not using regex
[features.git] / src / TextMetrics.cpp
index 19a5e8f1476fa91e112ee918c2adc6677ce83d3d..53b683861f0d14d1dc9f21f179eb14ee81c676fd 100644 (file)
@@ -916,10 +916,10 @@ Row TextMetrics::tokenizeParagraph(pit_type const pit) const
                        // ⤶ U+2936 ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
                        // ¶ U+00B6 PILCROW SIGN
                        char_type const screen_char = (c == 0x2028) ? 0x2936 : 0x00B6;
-                       row.add(i, screen_char, *fi, par.lookupChange(i), i >= body_pos);
+                       row.add(i, screen_char, *fi, par.lookupChange(i));
                } else
                        // row elements before body are unbreakable
-                       row.add(i, c, *fi, par.lookupChange(i), i >= body_pos);
+                       row.add(i, c, *fi, par.lookupChange(i));
 
                // add inline completion width
                // draw logically behind the previous character
@@ -1202,7 +1202,10 @@ int TextMetrics::parTopSpacing(pit_type const pit) const
            && prevpar.getLabelWidthString() == par.getLabelWidthString()) {
                layoutasc = layout.itemsep * dh;
        } else if (pit != 0 && layout.topsep > 0)
-               layoutasc = layout.topsep * dh;
+               // combine the separation between different layouts (with same depth)
+               layoutasc = max(0.0,
+                       prevpar.getDepth() != par.getDepth() ? layout.topsep
+                       : layout.topsep - prevpar.layout().bottomsep) * dh;
 
        asc += int(layoutasc * 2 / (2 + pars[pit].getDepth()));