>>>>> "Andre" == Andre Poenitz <[EMAIL PROTECTED]> writes:

Andre> ++locked_undo_

Andre> --locked_undo_

Andre> woudl scale better in the long run. What when blocked undos
Andre> should becme part of an even larger blob?

Actually I think now that this is not the correct way forward. I
rather see some thing like a startUndoGroup/endUndoGroup pair of
commands (with ++ and -- as you propose) and a change to the undo
structure to a stack of stacks. This will allow to group a series of
undo operations as a single action. When outside of an undo group,
there would be only one action per substack.

In the case of Replace All, for example, each replace action would be
one entry, but the required memory would be much less than the whole
document.

This solution would fix two problems:

- the fact that in some cases one action leads to several undo steps.
  This would be fixed if lyxFunc::dispatch had a pair of
  startUndo/endUndo calls, ensuring that all changes due to an lfun
  lead to a single undo operation.

- when a global operation is done on the buffer, only individual
  changes are kept.

JMarc

Reply via email to