//List<TextEditorDataState> states = new List<TextEditorDataState> (); void OnBeginUndo(object sender, EventArgs args) { savedCaretPos = Caret.Offset; savedSelection = Selection.Clone(MainSelection); }