From 455a8f6ca259f006c31345bd1049b9570b21e835 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Vigna?= Date: Mon, 24 Dec 2001 10:15:17 +0000 Subject: [PATCH] Fixed stupid bug introduced in my last fix. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3262 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 5 +++++ src/undo_funcs.C | 58 ++++++++++++++++++++++++------------------------ 2 files changed, 34 insertions(+), 29 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index d06e36623e..123d2ebd71 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2001-12-24 Juergen Vigna + + * undo_funcs.C (textHandleUndo): fixed a stupid earlier wrong fix + which then did not anymore update the main paragraphs on undo/redo! + 2001-12-21 Jean-Marc Lasgouttes * lyxfunc.C (getStatus): use func_status::toggle to simplify the diff --git a/src/undo_funcs.C b/src/undo_funcs.C index a0a0aa567d..68b6576053 100644 --- a/src/undo_funcs.C +++ b/src/undo_funcs.C @@ -215,37 +215,37 @@ bool textHandleUndo(BufferView * bv, Undo * undo) endpar = behind->next(); tmppar = bv->buffer()->getParFromID(undo->number_of_cursor_par); - if (tmppar3) { - UpdatableInset* it = static_cast(tmppar3->inInset()); - if (it) { - it->getLyXText(bv)->redoParagraphs(bv, - it->getLyXText(bv)->cursor, - endpar); - LyXFont font; - it->update(bv, font, false); - // we now would have to rebreak the whole paragraph the - // undo-par was in. How we do it here is not really true. - // We would have to save this information in the undo-struct - // and then we could do the right rebreak. Here we only - // handle the case where this was in the actual paragraph, - // which not always is true. - bv->text->redoParagraphs(bv, bv->text->cursor, - bv->text->cursor.par()); - if (tmppar){ - it = static_cast(tmppar->inInset()); - LyXText * t; - if (it) { - it->edit(bv); - t = it->getLyXText(bv); - } else { - t = bv->text; - } - t->setCursorIntern(bv, tmppar, undo->cursor_pos); - t->updateCounters(bv, t->cursor.row()); + UpdatableInset* it = 0; + if (tmppar3) + it = static_cast(tmppar3->inInset()); + if (it) { + it->getLyXText(bv)->redoParagraphs(bv, + it->getLyXText(bv)->cursor, + endpar); + LyXFont font; + it->update(bv, font, false); + // we now would have to rebreak the whole paragraph the + // undo-par was in. How we do it here is not really true. + // We would have to save this information in the undo-struct + // and then we could do the right rebreak. Here we only + // handle the case where this was in the actual paragraph, + // which not always is true. + bv->text->redoParagraphs(bv, bv->text->cursor, + bv->text->cursor.par()); + if (tmppar){ + it = static_cast(tmppar->inInset()); + LyXText * t; + if (it) { + it->edit(bv); + t = it->getLyXText(bv); + } else { + t = bv->text; } - bv->text->setCursorIntern(bv, bv->text->cursor.par(), - bv->text->cursor.pos()); + t->setCursorIntern(bv, tmppar, undo->cursor_pos); + t->updateCounters(bv, t->cursor.row()); } + bv->text->setCursorIntern(bv, bv->text->cursor.par(), + bv->text->cursor.pos()); } else { bv->text->redoParagraphs(bv, bv->text->cursor, endpar); if (tmppar) { -- 2.39.2