コード例 #1
0
        /// <summary> 
        /// The helper for typing undo unit megring.
        /// Supposed to be called at the end of typing block - 
        /// after all changes are done. 
        /// Assumes that OpenTypingUndoUnit method was called
        /// in the beginning of this sequence. 
        /// </summary>
        private static void CloseTypingUndoUnit(TextEditor This, UndoCloseAction closeAction)
        {
            UndoManager undoManager = This._GetUndoManager(); 

            if (undoManager != null && undoManager.IsEnabled) 
            { 
                if (This._typingUndoUnit != null && undoManager.LastUnit == This._typingUndoUnit && !This._typingUndoUnit.Locked)
                { 
                    if (This._typingUndoUnit is TextParentUndoUnit)
                    {
                        ((TextParentUndoUnit)This._typingUndoUnit).RecordRedoSelectionState();
                    } 
                    undoManager.Close(This._typingUndoUnit, closeAction);
                } 
            } 
            else
            { 
                This._typingUndoUnit = null;
            }
        }
コード例 #2
0
        // ---------------------------------------------------------- 
        //
        // Merge Typing Undo Units 
        //
        // ----------------------------------------------------------

        #region Merge Typing Undo Units 

        /// <summary> 
        /// The helper for typing undo unit merging. 
        /// Supposed to be called in the beginning of typing block -
        /// before making any changes. 
        /// Assumes that CloseTypingUndoUnit method will be called
        /// after the change is completed.
        /// </summary>
        private static void OpenTypingUndoUnit(TextEditor This) 
        {
            UndoManager undoManager = This._GetUndoManager(); 
 
            if (undoManager != null && undoManager.IsEnabled)
            { 
                if (This._typingUndoUnit != null && undoManager.LastUnit == This._typingUndoUnit && !This._typingUndoUnit.Locked)
                {
                    undoManager.Reopen(This._typingUndoUnit);
                } 
                else
                { 
                    This._typingUndoUnit = new TextParentUndoUnit(This.Selection); 
                    undoManager.Open(This._typingUndoUnit);
                } 
            }
        }