]> git.lyx.org Git - features.git/commitdiff
fix undo crash
authorAlfredo Braunstein <abraunst@lyx.org>
Mon, 3 Nov 2003 21:22:31 +0000 (21:22 +0000)
committerAlfredo Braunstein <abraunst@lyx.org>
Mon, 3 Nov 2003 21:22:31 +0000 (21:22 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8022 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/undo.C

index 14c867dbd05ef023ce9f3d8dc76a6d608ca82c4f..6e57b13d814549dce73d24d9b55c6697ebaf6216 100644 (file)
@@ -1,3 +1,7 @@
+2003-11-03  Alfredo Braunstein  <abraunst@libero.it>
+
+       * undo.C (performUndoOrRedo): fix cursor positioning with lockPath
+
 2003-11-03  Lars Gullik Bjønnes  <larsbj@gullik.net>
 
        * text3.C (dispatch): adjust for new DisptchResult semantics.
index 44524212f55873b0926080c91c6346cac4670119..e62cb065246e5c4608454673d54035bd089c7505 100644 (file)
@@ -184,9 +184,11 @@ bool performUndoOrRedo(BufferView * bv, Undo const & undo)
 
        // set cursor
        lyxerr <<   "undo, text: " << undo.text
-               << " inset: " << pit.inset()
-               << " index: " << undo.index
-               << std::endl;
+              << " inset: " << pit.inset()
+              << " index: " << undo.index
+              << " par: " << undo.cursor_par
+              << " pos: " << undo.cursor_pos
+              << std::endl;
 
        // set cursor again to force the position to be the right one
        text->cursor.par(undo.cursor_par);
@@ -200,12 +202,8 @@ bool performUndoOrRedo(BufferView * bv, Undo const & undo)
        // rebreak the entire lyxtext
        bv->text->fullRebreak();
 
-       InsetOld * inset = pit.inset();
-       if (inset) {
-               // magic needed to cope with inset locking
-               bv->lockInset(dynamic_cast<UpdatableInset *>(inset));
-       }
-
+       pit.lockPath(bv);
+       
        finishUndo();
        return true;
 }