WordPress.org

Make WordPress Core

Ticket #28595: 28595.15.patch

File 28595.15.patch, 2.2 KB (added by iseulde, 4 years ago)
  • src/wp-includes/js/tinymce/plugins/wpview/plugin.js

     
    7474                editor.nodeChanged();
    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;
    85                 } else {
    8679                        padNode = dom.create( 'p' );
    8780
    88                         if ( ! ( Env.ie && Env.ie < 11 ) ) {
    89                                 padNode.innerHTML = '<br data-mce-bogus="1">';
    90                         }
     81                if ( ! ( Env.ie && Env.ie < 11 ) ) {
     82                        padNode.innerHTML = '<br data-mce-bogus="1">';
     83                }
    9184
    92                         if ( before ) {
    93                                 view.parentNode.insertBefore( padNode, view );
    94                         } else {
    95                                 dom.insertAfter( padNode, view );
    96                         }
     85                if ( before ) {
     86                        view.parentNode.insertBefore( padNode, view );
     87                } else {
     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        }
    104101
     
    456453                } else if ( cursorAfter ) {
    457454                        handleEnter( view );
    458455                } else if ( cursorBefore ) {
    459                         handleEnter( view , true);
     456                        handleEnter( view , true, keyCode );
    460457                }
    461458
    462459                if ( keyCode === VK.ENTER ) {
     
    630627                                        }, 500 );
    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++;
    636633                                        setViewCursor( true, view );