WordPress.org

Make WordPress Core

Changeset 29127


Ignore:
Timestamp:
07/13/14 00:33:58 (3 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.