Make WordPress Core

Changeset 29127


Ignore:
Timestamp:
07/13/2014 12:33:58 AM (12 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.