UsabilityDesignPatterns/InfiniteUndo

From MozillaWiki
Jump to: navigation, search

InfiniteUndo

Instead of allowing the user to undo only the single most recent action, allow them to continue undoing repeatedly, moving backward through command history as far as practical limits allow.

Pitfalls

Where there's Undo, there needs to be Redo. Ideally, one would be able to Undo back to any point, change some data or issue a different command, and then Redo repeatedly to replay all of the undone history. In practice, however, sometimes the change in state makes the Redo operation nonsensical or impossible. It's the "Back to the Future" problem: once you've altered the past, there may be no way back to your starting point. You've forked the timeline.