Ticket #3481: 3481.patch

File 3481.patch, 2.4 KB (added by Martin Kou, 15 years ago)
  • editor/_source/internals/fck.js

     
    957957        FCKTools.AddEventListener( FCK.EditorDocument, 'mousemove', _FCK_MouseEventsListener ) ;
    958958        FCKTools.AddEventListener( FCK.EditorDocument, 'mousedown', _FCK_MouseEventsListener ) ;
    959959        FCKTools.AddEventListener( FCK.EditorDocument, 'mouseup', _FCK_MouseEventsListener ) ;
     960        if ( FCKBrowserInfo.IsSafari )
     961        {
     962                // #3481: WebKit has a bug with paste where the paste contents may leak
     963                // outside table cells. So add padding nodes before and after the paste.
     964                FCKTools.AddEventListener( FCK.EditorDocument, 'paste', function( evt )
     965                {
     966                        var range = new FCKDomRange( FCK.EditorWindow );
     967                        var nodeBefore = FCK.EditorDocument.createTextNode( '\ufeff' );
     968                        var nodeAfter = FCK.EditorDocument.createTextNode( '\ufeff' );
     969                        range.MoveToSelection();
     970                        range.DeleteContents();
    960971
     972                        // Insert padding nodes.
     973                        range.InsertNode( nodeBefore );
     974                        range.Collapse();
     975                        range.InsertNode( nodeAfter );
     976
     977                        // Move the selection to between the padding nodes.
     978                        range.MoveToPosition( nodeAfter, 3 );
     979                        range.Select();
     980
     981                        // Remove the padding nodes after the paste is done.
     982                        setTimeout( function()
     983                                {
     984                                        nodeBefore.parentNode.removeChild( nodeBefore );
     985                                        nodeAfter.parentNode.removeChild( nodeAfter );
     986                                }, 0 );
     987                } );
     988        }
     989
    961990        // Most of the CTRL key combos do not work under Safari for onkeydown and onkeypress (See #1119)
    962991        // But we can use the keyup event to override some of these...
    963992        if ( FCKBrowserInfo.IsSafari )
  • _whatsnew.html

     
    6262                        had no effect if ProcessHTMLEntities is false.</li>
    6363                <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/3880">#3880</a>] Fixed some minor
    6464                        logical and typing mistakes in fckdomrange_ie.js.</li>
     65                <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/3481">#3481</a>] Fixed an issue in
     66                        WebKit where paste actions inside table cells may leak outside of the table cell.</li>
    6567        </ul>
    6668        <p>
    6769                <a href="_whatsnew_history.html">See previous versions history</a></p>
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy