Fix booktabs bottom line with multirows

Fixes: #11445
(cherry picked from commit 819c9c1645)
This commit is contained in:
Juergen Spitzmueller 2019-04-01 05:43:32 +02:00
parent 80b3adc42a
commit 15dae1244b
2 changed files with 13 additions and 3 deletions

View File

@ -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);

View File

@ -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