WordPress.org

Make WordPress Core

Changeset 33563


Ignore:
Timestamp:
08/03/2015 10:06:25 PM (6 years ago)
Author:
iseulde
Message:

TinyMCE: wptextpattern: trim whitespace

Props iseulde and azaozz.
Fixes #33246.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js

    r33512 r33563  
    5454        } );
    5555
    56         function firstNode( node ) {
     56        function firstTextNode( node ) {
    5757            var parent = editor.dom.getParent( node, 'p' ),
    5858                child;
     
    7575
    7676            if ( ! child.data ) {
    77                 child = child.nextSibling;
     77                if ( child.nextSibling && child.nextSibling.nodeType === 3 ) {
     78                    child = child.nextSibling;
     79                } else {
     80                    child = null;
     81                }
    7882            }
    7983
     
    8791                text;
    8892
    89             if ( ! node || firstNode( node ) !== node ) {
     93            if ( ! node || firstTextNode( node ) !== node ) {
    9094                return;
    9195            }
     
    124128
    125129        function watchEnter() {
    126             var selection = editor.selection,
    127                 rng = selection.getRng(),
    128                 offset = rng.startOffset,
     130            var rng = editor.selection.getRng(),
    129131                start = rng.startContainer,
    130                 node = firstNode( start ),
     132                node = firstTextNode( start ),
    131133                i = enterPatterns.length,
    132134                text, pattern;
     
    149151            }
    150152
    151             if ( node === start ) {
    152                 if ( tinymce.trim( text ) === pattern.start ) {
    153                     return;
    154                 }
    155 
    156                 offset = Math.max( 0, offset - pattern.start.length );
     153            if ( node === start && tinymce.trim( text ) === pattern.start ) {
     154                return;
    157155            }
    158156
     
    167165                editor.undoManager.transact( function() {
    168166                    editor.formatter.apply( refPattern.format, {}, refNode );
    169                     refNode.deleteData( 0, refPattern.start.length );
     167                    refNode.replaceData( 0, refNode.data.length, tinymce.trim( refNode.data.slice( refPattern.start.length ) ) );
    170168                } );
    171169
  • trunk/tests/qunit/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js

    r33452 r33563  
    151151
    152152        type( '\n', function() {
     153            assert.equal( editor.$( 'h3' )[0].firstChild.data, 'test' );
    153154            assert.equal( editor.getContent(), '<h3>test</h3>\n<p>&nbsp;</p>' );
    154155        }, assert.async() );
Note: See TracChangeset for help on using the changeset viewer.