better handling for undo of initial action in a buffer
undo saves new cursor position so that redo can restore it