commit 15dae1244bdc373a76571359f6cb9a7d0edb1104
Author: Juergen Spitzmueller <[email protected]>
Date: Mon Apr 1 05:43:32 2019 +0200
Fix booktabs bottom line with multirows
Fixes: #11445
(cherry picked from commit 819c9c164579bb11322238258ca71f5aa2621705)
---
src/insets/InsetTabular.cpp | 14 +++++++++++---
status.23x | 2 ++
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp
index 0e1c849..f9a78e1 100644
--- a/src/insets/InsetTabular.cpp
+++ b/src/insets/InsetTabular.cpp
@@ -4009,6 +4009,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)));
@@ -4017,12 +4019,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);
diff --git a/status.23x b/status.23x
index bfd25c1..edfeea5 100644
--- a/status.23x
+++ b/status.23x
@@ -176,6 +176,8 @@ What's new
- Place the indentation bars correctly in full-screen mode (bug 11286).
+- Fix display of formal table bottom line with multirows (bug 11445).
+
* INTERNALS