#include "Undo.h"
#include "Buffer.h"
+#include "BufferList.h"
#include "BufferParams.h"
#include "buffer_funcs.h"
#include "Cursor.h"
//LYXERR0("undo.array: " << *undo.array);
LBUFERR(undo.array);
dit.cell().swap(*undo.array);
+ dit.inset().setBuffer(buffer_);
delete undo.array;
undo.array = 0;
} else {
}
+bool Undo::activeUndoGroup() const
+{
+ return d->group_level_ > 0
+ && !d->undostack_.empty()
+ && d->undostack_.top().group_id == d->group_id_;
+}
+
+
void Undo::recordUndo(CursorData const & cur, UndoKind kind)
{
d->recordUndo(kind, cur, cur.pit(), cur.pit(), cur);
UndoGroupHelper::~UndoGroupHelper()
{
for (Buffer * buf : d->buffers_)
- buf->undo().endUndoGroup();
+ if (theBufferList().isLoaded(buf) || theBufferList().isInternal(buf))
+ buf->undo().endUndoGroup();
delete d;
}