diff --git a/src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js b/src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js index 7fac83774b..f1962a248a 100644 --- a/src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js +++ b/src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js @@ -87,6 +87,10 @@ } } + if ( ! child.nodeValue ) { + child = child.nextSibling; + } + if ( child !== node ) { return; } @@ -109,10 +113,18 @@ editor.undoManager.add(); editor.undoManager.transact( function() { + var $$parent; + if ( replace ) { $$( node ).replaceWith( document.createTextNode( replace ) ); } else { - $$( node.parentNode ).empty().append( '
' ); + $$parent = $$( node.parentNode ); + + $$( node ).remove(); + + if ( ! $$parent.html() ) { + $$parent.append( '
' ); + } } editor.selection.setCursorLocation( parent ); diff --git a/tests/qunit/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js b/tests/qunit/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js index c700676a07..0c84e7b823 100644 --- a/tests/qunit/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js +++ b/tests/qunit/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js @@ -77,7 +77,7 @@ }, assert.async() ); } ); - QUnit.test( 'Ordered list with content.', function( assert ) { + QUnit.test( 'Ordered list with content. (1)', function( assert ) { editor.setContent( '

test

' ); editor.selection.setCursorLocation(); @@ -86,6 +86,15 @@ }, assert.async() ); } ); + QUnit.test( 'Ordered list with content. (2)', function( assert ) { + editor.setContent( '

test

' ); + editor.selection.setCursorLocation( editor.$( 'p' )[0], 0 ); + + type( '* ', function() { + assert.equal( editor.getContent(), '' ); + }, assert.async() ); + } ); + QUnit.test( 'Only transform inside a P tag.', function( assert ) { editor.setContent( '

test

' ); editor.selection.setCursorLocation();