Make WordPress Core

Ticket #31441: 31441.29.patch

File 31441.29.patch, 1.7 KB (added by iseulde, 10 years ago)
  • src/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js

     
    1313( function( tinymce, setTimeout ) {
    1414        tinymce.PluginManager.add( 'wptextpattern', function( editor ) {
    1515                var VK = tinymce.util.VK,
    16                         canUndo = false,
    1716                        spacePatterns = [
    1817                                { regExp: /^[*-]\s/, cmd: 'InsertUnorderedList' },
    1918                                { regExp: /^1[.)]\s/, cmd: 'InsertOrderedList' }
     
    2625                                { start: '######', format: 'h6' },
    2726                                { start: '>', format: 'blockquote' }
    2827                        ],
     28                        canUndoSpace, canUndoEnter,
    2929                        refNode, refPattern;
    3030
    3131                editor.on( 'selectionchange', function() {
    32                         canUndo = false;
     32                        canUndoSpace = null;
     33                        canUndoEnter = null;
    3334                } );
    3435
    3536                editor.on( 'keydown', function( event ) {
    36                         if ( canUndo && ( event.keyCode === VK.BACKSPACE || event.keyCode === 27 /* ESCAPE */ ) ) {
     37                        if (
     38                                ( ( canUndoSpace || canUndoEnter ) && event.keyCode === 27 /* ESCAPE */ ) ||
     39                                ( canUndoSpace && event.keyCode === VK.BACKSPACE )
     40                        ) {
    3741                                editor.undoManager.undo();
    3842                                event.preventDefault();
    3943                        }
     
    115119
    116120                                // We need to wait for native events to be triggered.
    117121                                setTimeout( function() {
    118                                         canUndo = true;
     122                                        canUndoSpace = true;
    119123                                } );
    120124
    121125                                return false;
     
    168172                                        editor.formatter.apply( refPattern.format, {}, refNode );
    169173                                        refNode.deleteData( 0, refPattern.start.length );
    170174                                } );
     175
     176                                // We need to wait for native events to be triggered.
     177                                setTimeout( function() {
     178                                        canUndoEnter = true;
     179                                } );
    171180                        }
    172181
    173182                        refNode = null;