commit 15dae1244bdc373a76571359f6cb9a7d0edb1104 Author: Juergen Spitzmueller <sp...@lyx.org> 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