Changeset 5485


Ignore:
Timestamp:
05/14/2010 08:25:11 AM (5 years ago)
Author:
garry.yao
Message:

#5546: Undo/Redo now works with SCAYT by ignoring word markers from snapshot comparison.

Location:
CKEditor/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r5484 r5485  
    8888                <li><a href="http://dev.fckeditor.net/ticket/5461">#5461</a> : [IE] Fix Paste from Word dialog doesn't accept imput problem.</li>
    8989                <li><a href="http://dev.fckeditor.net/ticket/5573">#5573</a> : SCAYT move cursor position after insert element into marked word text.</li>
     90                <li><a href="http://dev.fckeditor.net/ticket/5546">#5546</a> : SCAYT interferes with undo/redo commands.</li>
    9091                <li>Updated the following language files:<ul>
    9192                        <li><a href="http://dev.fckeditor.net/ticket/5432">#5432</a> : Dutch;</li>
  • CKEditor/trunk/_source/plugins/scayt/plugin.js

    r5484 r5485  
    143143                        });
    144144
     145                editor.on( 'afterCommandExec', function( ev )
     146                        {
     147                                if ( !plugin.isScaytEnabled( editor ) )
     148                                        return;
     149
     150                                if ( editor.mode == 'wysiwyg' && ( ev.data.name == 'undo' || ev.data.name == 'redo' ) )
     151                                        window.setTimeout( function() { plugin.getScayt( editor ).refresh(); }, 10 );
     152                        });
     153
    145154                editor.on( 'destroy', function( ev )
    146155                        {
     
    231240                }
    232241
     242                // Override Image.equals method avoid CK snapshot module to add SCAYT markup to snapshots. (#5546)
     243                var undoImagePrototype = CKEDITOR.plugins.undo.Image.prototype;
     244                undoImagePrototype.equals =      CKEDITOR.tools.override( undoImagePrototype.equals, function( org )
     245                {
     246                        return function( otherImage )
     247                        {
     248                                var thisContents = this.contents,
     249                                        otherContents = otherImage.contents;
     250                                var scayt_instance = plugin.getScayt( this.editor );
     251                                // Making the comparison based on content without SCAYT word markers.
     252                                if ( scayt_instance && plugin.isScaytReady( this.editor ) )
     253                                {
     254                                        this.contents = scayt_instance.reset( thisContents );
     255                                        otherImage.contents = scayt_instance.reset( otherContents );
     256                                }
     257                               
     258                                var retval = org.apply( this, arguments );
     259
     260                                this.contents = thisContents;
     261                                otherImage.contents = otherContents;
     262                                return retval;
     263                        }
     264                });
     265               
    233266                if ( editor.document )
    234267                        createInstance();
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy