Most computer applications undo using linear undo where the user’s most recently executed action is the first to be undone. There is another type of undo, called selective undo where the user can undo an arbitrary action from the user's past action without necessitating retraction of all subsequent actions.
For example if the user did the following actions in this order (bottom is the most recent):
- Change font from “apple” to “orange”
- Spell check the entire document
- Create a table
In this case, selective undo would allow the user to undo the font change without removing the table or the results of the spell check. Linear undo would not be very useful here as it would undo the table and the results of the spell check.
A list, such as the one given above, is called a history list and most computer applications keep track of one. A history list is an ordered list that displays all the actions that the user has done and has the possibility of being undone.
The bigger the document the user works with, the longer this history list can get. A very long history list can be difficult to work with because it can get very hard to find what exactly we want to undo. To mitigate this problem, we propose a new model called the Context Sensitive Selective Undo.
In the Context Sensitive Selective Undo Model, the user highlights a specific portion of document they want to work with, and then a much shorter history list only showing actions specific to the highlighted characters appears.