Ticket #4543: 4543.patch

File 4543.patch, 2.3 KB (added by Garry Yao, 10 years ago)
  • _source/plugins/wysiwygarea/plugin.js

     
    187187                                whitespaceGuard = CKEDITOR.dom.walker.whitespaces( true ),
    188188                                previousElement = fixedBlock.getPrevious( whitespaceGuard ),
    189189                                nextElement = fixedBlock.getNext( whitespaceGuard ),
    190                                 enterBlock;
     190                                destBlock;
    191191                        if ( previousElement && previousElement.getName
    192                                  && !( previousElement.getName() in nonExitableElementNames ) )
    193                                 enterBlock = previousElement;
     192                                 && !( previousElement.getName() in nonExitableElementNames )
     193                                 && range.moveToElementEditStart( previousElement, true ) )
     194                                destBlock = previousElement;
    194195                        else if ( nextElement && nextElement.getName
    195                                           && !( nextElement.getName() in nonExitableElementNames ) )
    196                                 enterBlock = nextElement;
     196                                          && !( nextElement.getName() in nonExitableElementNames )
     197                                          && range.moveToElementEditStart( nextElement, true ) )
     198                                destBlock = nextElement;
    197199
    198200                        // Not all blocks are editable, e.g. <hr />, further checking it.(#3994)
    199201                        if( ( !count
    200202                                  || ( firstChild = children.getItem( 0 ) ) && firstChild.is && firstChild.is( 'br' ) )
    201                                 && enterBlock
    202                                 && range.moveToElementEditStart( enterBlock ) )
     203                                && destBlock )
    203204                        {
    204205                                fixedBlock.remove();
     206                                range.moveToElementEditStart( destBlock );
    205207                                range.select();
    206208                        }
    207209                }
  • _source/core/dom/range.js

     
    15871587                 * @param {CKEDITOR.dom.element} targetElement The element into which
    15881588                 *              look for the editing spot.
    15891589                 */
    1590                 moveToElementEditStart : function( targetElement )
     1590                moveToElementEditStart : function( targetElement, justTry )
    15911591                {
    15921592                        var editableElement;
    15931593
     
    16031603
    16041604                        if ( editableElement )
    16051605                        {
    1606                                 this.moveToPosition(editableElement, CKEDITOR.POSITION_AFTER_START);
     1606                                !justTry && this.moveToPosition( editableElement, CKEDITOR.POSITION_AFTER_START );
    16071607                                return true;
    16081608                        }
    16091609                        else
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy