commit 3b895bb47a69c41581415f262c9d197333941b73
Author: Juergen Spitzmueller <[email protected]>
Date: Mon Jun 29 16:30:49 2020 +0200
Fix math grid paste when needing more cells
---
src/mathed/InsetMathGrid.cpp | 21 +++++++++++++--------
1 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/src/mathed/InsetMathGrid.cpp b/src/mathed/InsetMathGrid.cpp
index 52283b5..1fd4459 100644
--- a/src/mathed/InsetMathGrid.cpp
+++ b/src/mathed/InsetMathGrid.cpp
@@ -1624,8 +1624,10 @@ void InsetMathGrid::doDispatch(Cursor & cur, FuncRequest
& cmd)
} else {
// multiple cells
cur.recordUndoInset();
+ col_type startcol = col(cur.idx());
+ row_type startrow = cur.row();
col_type const numcols =
- min(grid.ncols(), ncols() - col(cur.idx()));
+ min(grid.ncols(), ncols() - startcol);
row_type const numrows =
min(grid.nrows(), nrows() - cur.row());
for (row_type r = 0; r < numrows; ++r) {
@@ -1643,19 +1645,22 @@ void InsetMathGrid::doDispatch(Cursor & cur,
FuncRequest & cmd)
MathAtom(new
InsetMathUnknown(from_ascii("\\hline"))));
}
}
- // append the left over horizontal cells to the
last column
- idx_type i = index(r + cur.row(), ncols() - 1);
- for (InsetMath::col_type c = numcols; c <
grid.ncols(); ++c)
+ // append columns for the left over horizontal
cells
+ for (InsetMath::col_type c = numcols; c <
grid.ncols(); ++c) {
+ addCol(c + 1);
+ idx_type i = index(r + cur.row(), c +
1);
cell(i).append(grid.cell(grid.index(r,
c)));
+ }
}
- // append the left over vertical cells to the last
_cell_
+ // append rows for the left over vertical cells
idx_type i = nargs() - 1;
for (row_type r = numrows; r < grid.nrows(); ++r) {
- addRow(r - 1);
+ row_type crow = startrow + r;
+ addRow(crow - 1);
for (col_type c = 0; c < grid.ncols(); ++c)
- cell(index(r,
c)).append(grid.cell(grid.index(r, c)));
+ cell(index(crow, c +
startcol)).append(grid.cell(grid.index(r, c)));
if (hline_enabled)
- rowinfo_[r].lines +=
grid.rowinfo_[r].lines;
+ rowinfo_[crow].lines +=
grid.rowinfo_[r].lines;
else {
for (unsigned int l = 0; l <
grid.rowinfo_[r].lines; ++l) {
cell(i).insert(0,
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs