commit 819c9c164579bb11322238258ca71f5aa2621705
Author: Juergen Spitzmueller <[email protected]>
Date:   Mon Apr 1 05:43:32 2019 +0200

    Fix booktabs bottom line with multirows
    
    Fixes: #11445
---
 src/insets/InsetTabular.cpp |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp
index ed28241..44f251a 100644
--- a/src/insets/InsetTabular.cpp
+++ b/src/insets/InsetTabular.cpp
@@ -4233,6 +4233,8 @@ void InsetTabular::drawCellLines(PainterInfo & pi, int x, 
int y,
        int const w = tabular.cellWidth(cell);
        int const h = tabular.cellHeight(cell);
 
+       col_type const col = tabular.cellColumn(cell);
+
        // Top
        bool drawline = tabular.topLine(cell)
                || (row > 0 && tabular.bottomLine(tabular.cellAbove(cell)));
@@ -4241,12 +4243,18 @@ void InsetTabular::drawCellLines(PainterInfo & pi, int 
x, int y,
 
        // Bottom
        drawline = tabular.bottomLine(cell);
-       heavy = tabular.use_booktabs && row == tabular.nrows() - 1
-               && tabular.rowBottomLine(row);
+       row_type const lastrow = tabular.nrows() - 1;
+       // Consider multi-rows
+       row_type r = row;
+       while (r < lastrow && tabular.isMultiRow(tabular.cellIndex(r, col))
+               && tabular.isPartOfMultiRow(r + 1, col))
+               r++;
+       heavy = tabular.use_booktabs
+               && ((row == lastrow && tabular.rowBottomLine(row))
+                   || (r == lastrow && tabular.rowBottomLine(r)));
        tabline(pi, x, y + h, x + w, y + h, drawline, heavy);
 
        // Left
-       col_type const col = tabular.cellColumn(cell);
        drawline = tabular.leftLine(cell)
                || (col > 0 && tabular.rightLine(tabular.cellIndex(row, col - 
1)));
        tabline(pi, x, y, x, y + h, drawline);

Reply via email to