Add an extra SetCursorEvent option to set the cursor to a specific point
Make the cursor change back to where it was on Undo

TODO: Change forward on Redo
Move cursor on Redo