Fix bottom border allocation when setting a multirow.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39736 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jürgen Spitzmüller 2011-09-23 17:12:20 +00:00
parent d14f5a75af
commit a0a4ac91af
2 changed files with 10 additions and 6 deletions

View File

@ -1649,7 +1649,8 @@ bool Tabular::isMultiRow(idx_type cell) const
}
Tabular::idx_type Tabular::setMultiRow(idx_type cell, idx_type number)
Tabular::idx_type Tabular::setMultiRow(idx_type cell, idx_type number,
bool const bottom_border)
{
idx_type const col = cellColumn(cell);
idx_type const row = cellRow(cell);
@ -1670,8 +1671,8 @@ Tabular::idx_type Tabular::setMultiRow(idx_type cell, idx_type number)
// cells: left
cs.alignment = LYX_ALIGN_LEFT;
// set the bottom row of the last selected cell
setBottomLine(cell, bottomLine(cell + (number - 1)*ncols()));
// set the bottom line of the last selected cell
setBottomLine(cell, bottom_border);
for (idx_type i = 1; i < number; ++i) {
CellData & cs1 = cell_info[row + i][col];
@ -5399,7 +5400,8 @@ void InsetTabular::tabularFeatures(Cursor & cur,
// just multirow for one single cell
// check whether we are completely in a multirow
if (!tabular.isMultiRow(cur.idx()))
tabular.setMultiRow(cur.idx(), 1);
tabular.setMultiRow(cur.idx(), 1,
tabular.bottomLine(cur.idx()));
break;
}
// we have a selection so this means we just add all this
@ -5407,7 +5409,8 @@ void InsetTabular::tabularFeatures(Cursor & cur,
idx_type const s_start = cur.selBegin().idx();
row_type const row_start = tabular.cellRow(s_start);
row_type const row_end = tabular.cellRow(cur.selEnd().idx());
cur.idx() = tabular.setMultiRow(s_start, row_end - row_start + 1);
cur.idx() = tabular.setMultiRow(s_start, row_end - row_start + 1,
tabular.bottomLine(cur.selEnd().idx()));
cur.pit() = 0;
cur.pos() = 0;
cur.setSelection(false);

View File

@ -475,7 +475,8 @@ public:
///
bool isMultiRow(idx_type cell) const;
///
idx_type setMultiRow(idx_type cell, idx_type number);
idx_type setMultiRow(idx_type cell, idx_type number,
bool const bottom_border);
///
void unsetMultiRow(idx_type cell);
///