Ticket #3681: 3681.patch

File 3681.patch, 2.3 KB (added by Garry Yao, 11 years ago)
  • _source/plugins/enterkey/plugin.js

     
    261261                        // A text node is required by Gecko only to make the cursor blink.
    262262                        // We need some text inside of it, so the bogus <br> is properly
    263263                        // created.
    264                         if ( CKEDITOR.env.gecko )
     264                        if ( !CKEDITOR.env.ie )
    265265                                doc.createText( '\ufeff' ).insertAfter( lineBreak );
    266266
    267267                        // If we are at the end of a block, we must be sure the bogus node is available in that block.
     
    270270
    271271                        // Now we can remove the text node contents, so the caret doesn't
    272272                        // stop on it.
    273                         if ( CKEDITOR.env.gecko )
     273                        if ( !CKEDITOR.env.ie )
    274274                                lineBreak.getNext().$.nodeValue = '';
    275 
    276275                        // IE has different behavior regarding position.
    277276                        if ( CKEDITOR.env.ie )
    278277                                range.setStartAt( lineBreak, CKEDITOR.POSITION_AFTER_END );
     
    284283                        {
    285284                                var dummy = null;
    286285
    287                                 if ( CKEDITOR.env.opera )
     286                                // BR is not positioned in Opera and Webkit.
     287                                if ( !CKEDITOR.env.gecko )
     288                                {
    288289                                        dummy = doc.createElement( 'span' );
     290                                        // We need have some contents for Webkit to position it
     291                                        // under parent node. ( #3681)
     292                                        dummy.setHtml('&nbsp;');
     293                                }
    289294                                else
    290295                                        dummy = doc.createElement( 'br' );
    291296
  • _source/core/dom/element.js

     
    11151115                        }
    11161116                        else
    11171117                        {
    1118                                 var current = this, previous = null;
     1118                                var current = this, previous = null, offsetParent;
    11191119                                while ( current && !( current.getName() == 'body' || current.getName() == 'html' ) )
    11201120                                {
    11211121                                        x += current.$.offsetLeft - current.$.scrollLeft;
     
    11361136                                                scrollElement = scrollElement.getParent();
    11371137                                        }
    11381138
    1139                                         previous = current;
    1140                                         current = new CKEDITOR.dom.element( current.$.offsetParent );
    1141                                 }
    1142                         }
     1139                                previous = current;
     1140                                current = ( offsetParent = current.$.offsetParent ) ?
     1141                                  new CKEDITOR.dom.element( offsetParent ) : null;
     1142                        }
    11431143
    11441144                        if ( refDocument )
    11451145                        {
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy