WordPress.org

Make WordPress Core

Ticket #28595: 28595.15.patch

File 28595.15.patch, 2.2 KB (added by iseulde, 3 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 );