]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetTabular.cpp
Keep outer tabular borders when delete row/column
[features.git] / src / insets / InsetTabular.cpp
index a38c4b27a392872fbf7044d3111bc0e138a675d2..f8d868608a94d29638e54d3fea67323050abef3f 100644 (file)
@@ -5313,6 +5313,12 @@ void InsetTabular::tabularFeatures(Cursor & cur,
                break;
 
        case Tabular::DELETE_ROW:
+               if (sel_row_end == tabular.nrows() - 1 && sel_row_start != 0) {
+                       for (col_type c = 0; c < tabular.ncols(); c++)
+                               tabular.setBottomLine(tabular.cellIndex(sel_row_start - 1, c),
+                                       tabular.bottomLine(tabular.cellIndex(sel_row_end, c)));
+               }
+
                for (row_type r = sel_row_start; r <= sel_row_end; ++r)
                        tabular.deleteRow(sel_row_start);
                if (sel_row_start >= tabular.nrows())
@@ -5324,6 +5330,18 @@ void InsetTabular::tabularFeatures(Cursor & cur,
                break;
 
        case Tabular::DELETE_COLUMN:
+               if (sel_col_end == tabular.ncols() - 1 && sel_col_start != 0) {
+                       for (row_type r = 0; r < tabular.nrows(); r++)
+                               tabular.setRightLine(tabular.cellIndex(r, sel_col_start - 1),
+                                       tabular.rightLine(tabular.cellIndex(r, sel_col_end)));
+               }
+
+               if (sel_col_start == 0 && sel_col_end != tabular.ncols() - 1) {
+                       for (row_type r = 0; r < tabular.nrows(); r++)
+                               tabular.setLeftLine(tabular.cellIndex(r, sel_col_end + 1),
+                                       tabular.leftLine(tabular.cellIndex(r, 0)));
+               }
+
                for (col_type c = sel_col_start; c <= sel_col_end; ++c)
                        tabular.deleteColumn(sel_col_start);
                if (sel_col_start >= tabular.ncols())