mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-29 05:01:49 +00:00
Redo 25580 the right way, again :-)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25618 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
a282ef926a
commit
0f7bae394c
34
src/Undo.cpp
34
src/Undo.cpp
@ -73,8 +73,31 @@ struct UndoElement
|
||||
MathData * ar, BufferParams const & bp,
|
||||
bool ifb) :
|
||||
kind(kin), cursor(cur), cell(cel), from(fro), end(en),
|
||||
pars(pl), array(ar), bparams(bp), isFullBuffer(ifb)
|
||||
{}
|
||||
pars(pl), array(ar), bparams(0), isFullBuffer(ifb)
|
||||
{
|
||||
if (isFullBuffer)
|
||||
bparams = new BufferParams(bp);
|
||||
}
|
||||
///
|
||||
UndoElement(UndoElement const & ue)
|
||||
{
|
||||
kind = ue.kind;
|
||||
cursor = ue.cursor;
|
||||
cell = ue.cell;
|
||||
from = ue.from;
|
||||
end = ue.end;
|
||||
pars = ue.pars;
|
||||
array = ue.array;
|
||||
bparams = ue.isFullBuffer
|
||||
? new BufferParams(*ue.bparams) : ue.bparams;
|
||||
isFullBuffer = ue.isFullBuffer;
|
||||
}
|
||||
///
|
||||
~UndoElement()
|
||||
{
|
||||
if (isFullBuffer)
|
||||
delete bparams;
|
||||
}
|
||||
/// Which kind of operation are we recording for?
|
||||
UndoKind kind;
|
||||
/// the position of the cursor
|
||||
@ -90,7 +113,7 @@ struct UndoElement
|
||||
/// the contents of the saved MathData (for mathed)
|
||||
MathData * array;
|
||||
/// Only used in case of full backups
|
||||
BufferParams bparams;
|
||||
BufferParams const * bparams;
|
||||
/// Only used in case of full backups
|
||||
bool isFullBuffer;
|
||||
private:
|
||||
@ -322,8 +345,9 @@ bool Undo::Private::textUndoOrRedo(DocIterator & cur, bool isUndoOperation)
|
||||
if (undo.isFullBuffer) {
|
||||
LASSERT(undo.pars, /**/);
|
||||
// This is a full document
|
||||
otherstack.top().bparams = buffer_.params();
|
||||
buffer_.params() = undo.bparams;
|
||||
delete otherstack.top().bparams;
|
||||
otherstack.top().bparams = new BufferParams(buffer_.params());
|
||||
buffer_.params() = *undo.bparams;
|
||||
swap(buffer_.paragraphs(), *undo.pars);
|
||||
delete undo.pars;
|
||||
undo.pars = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user