WordPress.org

Make WordPress Core

Changeset 37668


Ignore:
Timestamp:
06/09/2016 07:06:25 PM (4 years ago)
Author:
iseulde
Message:

TinyMCE: wptextpattern: fix for fast typing

Props jnylen0, iseulde.

Fixes #36585.

Location:
trunk
Files:
2 edited

Legend:

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

    r37023 r37668  
    6363                enter();
    6464            }
     65
     66            // Wait for the browser to insert the character.
     67            if ( event.keyCode === VK.SPACEBAR && ! event.ctrlKey && ! event.metaKey && ! event.altKey ) {
     68                setTimeout( space );
     69            } else if ( event.keyCode > 47 && ! ( event.keyCode >= 91 && event.keyCode <= 93 ) ) {
     70                setTimeout( inline );
     71            }
    6572        }, true );
    66 
    67         editor.on( 'keyup', function( event ) {
    68             if ( event.keyCode === VK.SPACEBAR && ! event.ctrlKey && ! event.metaKey && ! event.altKey ) {
    69                 space();
    70             } else if ( event.keyCode > 47 && ! ( event.keyCode >= 91 && event.keyCode <= 93 ) ) {
    71                 inline();
    72             }
    73         } );
    7473
    7574        function inline() {
  • trunk/tests/qunit/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js

    r37080 r37668  
    77    }
    88
    9     function mceType(chr) {
     9    function mceType( chr, noKeyUp ) {
    1010        var editor = tinymce.activeEditor, keyCode, charCode, evt, startElm, rng, startContainer, startOffset, textNode;
    1111
     
    110110        }
    111111
    112         fakeEvent(startElm, 'keyup', evt);
     112        if ( ! noKeyUp ) {
     113            fakeEvent(startElm, 'keyup', evt);
     114        }
    113115    }
    114116
     
    116118        var args = arguments;
    117119
     120        // Wait once for conversions to be triggered,
     121        // and once for the `canUndo` flag to be set.
     122        setTimeout( function() {
    118123        setTimeout( function() {
    119124            if ( typeof args[0] === 'string' ) {
     
    134139                type.apply( null, args );
    135140            }
     141        } );
    136142        } );
    137143    }
     
    178184    } );
    179185
     186    QUnit.test( 'Unordered list. (fast)', function( assert ) {
     187        type( '*', function() {
     188            mceType( ' ', true );
     189        }, 'a', function() {
     190            assert.equal( editor.getContent(), '<ul>\n<li>a</li>\n</ul>' );
     191        }, assert.async() );
     192    } );
     193
    180194    QUnit.test( 'Ordered list.', function( assert ) {
    181195        type( '1. a', function() {
Note: See TracChangeset for help on using the changeset viewer.