WordPress.org

Make WordPress Core

Ticket #28595: 28595.18.patch

File 28595.18.patch, 2.4 KB (added by iseulde, 4 years ago)
  • src/wp-includes/js/mce-view.js

     
    1 /* global tinymce, MediaElementPlayer, WPPlaylistView */
     1/* global tinymce */
    22/**
    33 * Note: this API is "experimental" meaning that it will probably change
    44 * in the next few releases based on feedback from 3.9.0.
  • src/wp-includes/js/tinymce/plugins/wpview/plugin.js

     
    1010                TreeWalker = tinymce.dom.TreeWalker,
    1111                toRemove = false,
    1212                firstFocus = true,
    13                 cursorInterval, lastKeyDownNode, setViewCursorTries, focus;
     13                cursorInterval, lastKeyDownNode, setViewCursorTries, focus, execCommandView;
    1414
    1515        function getView( node ) {
    1616                return getParent( node, 'wpview-wrap' );
     
    581581
    582582                if ( focus ) {
    583583                        if ( view ) {
    584                                 if ( className === 'wpview-selection-before' || className === 'wpview-selection-after' && editor.selection.isCollapsed() ) {
     584                                if ( ( className === 'wpview-selection-before' || className === 'wpview-selection-after' ) && editor.selection.isCollapsed() ) {
    585585                                        setViewCursorTries = 0;
    586586
    587587                                        deselect();
     
    618618                }
    619619        });
    620620
    621         editor.on( 'BeforeExecCommand', function( event ) {
    622                 var cmd = event.command,
     621        editor.on( 'BeforeExecCommand', function() {
     622                var node = editor.selection.getNode(),
    623623                        view;
    624624
    625                 if ( cmd === 'undo' || cmd === 'redo' || cmd === 'RemoveFormat' || cmd === 'mceToggleFormat' ) {
    626                         return;
     625                if ( node && ( node.className === 'wpview-selection-before' || node.className === 'wpview-selection-after' ) && ( view = getView( node ) ) ) {
     626                        handleEnter( view );
     627                        execCommandView = view;
    627628                }
     629        });
    628630
    629                 if ( view = getView( editor.selection.getNode() ) ) {
    630                         handleEnter( view );
     631        editor.on( 'ExecCommand', function() {
     632                var toSelect, node;
     633
     634                if ( selected ) {
     635                        toSelect = selected;
     636                        deselect();
     637                        select( toSelect );
     638                }
     639
     640                if ( execCommandView ) {
     641                        node = execCommandView.nextSibling;
     642
     643                        if ( node && node.nodeName === 'P' && editor.dom.isEmpty( node ) ) {
     644                                editor.dom.remove( node );
     645                                setViewCursor( false, execCommandView );
     646                        }
     647
     648                        execCommandView = false;
    631649                }
    632650        });
    633651