Ticket #2606: ticket2606.patch

File ticket2606.patch, 2.0 KB (added by Dmiry Polyakov, 16 years ago)

Patch to fix Ticket #2606 (Deleting a button (Safari) adds text-align: center to remaining contents)

  • editor/_source/classes/fckenterkey.js

     
    1 ?/*
     1/*
    22 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
    33 * Copyright (C) 2003-2008 Frederico Caldeira Knabben
    44 *
     
    172172                return false ;
    173173        }
    174174
     175        //fix for webkit-based browsers (http://dev.fckeditor.net/ticket/2606) - deletes button
     176        if (FCKBrowserInfo.IsSafari) {
     177                var prevElement = FCKDomTools.GetPreviousSourceElement( oRange.StartNode, true ) ;
     178                if ( prevElement && this._IsButton( prevElement ) )
     179                {
     180                                prevElement.parentNode.removeChild( prevElement ) ;
     181                                return true ;
     182                }
     183        }
     184
    175185        // On IE, it is better for us handle the deletion if the caret is preceeded
    176186        // by a <br> (#1383).
    177187        if ( FCKBrowserInfo.IsIE )
     
    360370                return true ;
    361371        }
    362372
     373        //fix for webkit-based browsers (http://dev.fckeditor.net/ticket/2606) - deletes button
     374        if ( FCKBrowserInfo.IsSafari ) {
     375                var nextElement = FCKDomTools.GetNextSourceElement( oRange.StartNode, true ) ;
     376                if ( nextElement && this._IsButton( nextElement ))
     377                {
     378                        nextElement.parentNode.removeChild( nextElement ) ;
     379                        return true ;
     380                }
     381        }
     382
    363383        // There is just one special case for collapsed selections at the end of a block.
    364384        if ( oRange.CheckIsCollapsed() && oRange.CheckEndOfBlock( FCKBrowserInfo.IsGeckoLike ) )
    365385        {
     
    711731        range.Select() ;
    712732        range.Release() ;
    713733}
     734
     735// Used by doDelete and doBackspace in webkit-based browsers to delete a button, ticket #2606
     736FCKEnterKey.prototype._IsButton = function ( element )
     737{
     738        return ( element && element.tagName &&
     739                ((element.tagName.toLowerCase() == 'input' &&
     740                        (element.type.toLowerCase() == 'button' || element.type.toLowerCase() == 'submit' || element.type.toLowerCase() == 'reset')
     741                ) || element.tagName.toLowerCase() == "button")
     742        );
     743}
     744 No newline at end of file
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy