internal void Redo()
{
if (redoStack.Count == 0)
return;
UndoableCommand cmd;
BeginDisableCommands();//prevent text changing into handlers
try
{
cmd = redoStack.Pop();
if (TextSource.CurrentTB.Selection.ColumnSelectionMode)
TextSource.CurrentTB.Selection.ColumnSelectionMode = false;
TextSource.CurrentTB.Selection.Start = cmd.sel.Start;
TextSource.CurrentTB.Selection.End = cmd.sel.End;
cmd.Execute();
history.Push(cmd);
}
finally
{
EndDisableCommands();
}
//redo command after autoUndoable command
if (cmd.autoUndo)
Redo();
TextSource.CurrentTB.OnUndoRedoStateChanged();
}