]> git.lyx.org Git - lyx.git/commitdiff
Fix crash after undo following replacement of a multicell selection (#8973).
authorJuergen Spitzmueller <spitz@lyx.org>
Sun, 2 Mar 2014 12:21:59 +0000 (13:21 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Sun, 2 Mar 2014 12:21:59 +0000 (13:21 +0100)
src/insets/InsetTabular.cpp

index 60a0157cb3056dc33b15cf557a691ebb4334349d..b12474344606c04db87920a5ca81e3f92c5408a4 100644 (file)
@@ -4328,8 +4328,16 @@ void InsetTabular::doDispatch(Cursor & cur, FuncRequest & cmd)
                if (cur.selIsMultiCell()) {
                        cur.recordUndoInset(DELETE_UNDO);
                        cutSelection(cur);
-               }
-               cell(cur.idx())->dispatch(cur, cmd);
+                       BufferView * bv = &cur.bv();
+                       docstring::const_iterator cit = cmd.argument().begin();
+                       docstring::const_iterator const end = cmd.argument().end();
+                       for (; cit != end; ++cit)
+                               bv->translateAndInsert(*cit, getText(cur.idx()), cur);
+       
+                       cur.resetAnchor();
+                       bv->bookmarkEditPosition();
+               } else
+                       cell(cur.idx())->dispatch(cur, cmd);
                break;
 
        case LFUN_CHAR_DELETE_BACKWARD: