WordPress.org

Make WordPress Core

Changeset 29127


Ignore:
Timestamp:
07/13/2014 12:33:58 AM (4 years ago)
Author:
azaozz
Message:

TinyMCE wpView: better handling of the Enter key, props avryl, see #28595

File:
1 edited

Legend:

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

    r29126 r29127  
    7575    }
    7676
    77     function handleEnter( view, before ) {
     77    function handleEnter( view, before, keyCode ) {
    7878        var dom = editor.dom,
    79             padNode;
    80 
    81         if ( ! before && view.nextSibling && dom.isEmpty( view.nextSibling ) && view.nextSibling.nodeName === 'P' ) {
    82             padNode = view.nextSibling;
    83         } else if ( before && view.previousSibling && dom.isEmpty( view.previousSibling ) && view.previousSibling.nodeName === 'P' ) {
    84             padNode = view.previousSibling;
     79            padNode = dom.create( 'p' );
     80
     81        if ( ! ( Env.ie && Env.ie < 11 ) ) {
     82            padNode.innerHTML = '<br data-mce-bogus="1">';
     83        }
     84
     85        if ( before ) {
     86            view.parentNode.insertBefore( padNode, view );
    8587        } else {
    86             padNode = dom.create( 'p' );
    87 
    88             if ( ! ( Env.ie && Env.ie < 11 ) ) {
    89                 padNode.innerHTML = '<br data-mce-bogus="1">';
    90             }
    91 
    92             if ( before ) {
    93                 view.parentNode.insertBefore( padNode, view );
    94             } else {
    95                 dom.insertAfter( padNode, view );
    96             }
     88            dom.insertAfter( padNode, view );
    9789        }
    9890
    9991        deselect();
    100         editor.getBody().focus();
    101         editor.selection.setCursorLocation( padNode, 0 );
     92
     93        if ( before && keyCode === VK.ENTER ) {
     94            setViewCursor( before, view );
     95        } else {
     96            editor.selection.setCursorLocation( padNode, 0 );
     97        }
     98
    10299        editor.nodeChanged();
    103100    }
     
    457454            handleEnter( view );
    458455        } else if ( cursorBefore ) {
    459             handleEnter( view , true);
     456            handleEnter( view , true, keyCode );
    460457        }
    461458
     
    631628                // If the cursor lands anywhere else in the view, set the cursor before it.
    632629                // Only try this once to prevent a loop. (You never know.)
    633                 } else if ( ! getParent( event.element, 'wpview-body' ) && ! setViewCursorTries ) {
     630                } else if ( ! getParent( event.element, 'wpview-clipboard' ) && ! setViewCursorTries ) {
    634631                    deselect();
    635632                    setViewCursorTries++;
Note: See TracChangeset for help on using the changeset viewer.