WordPress.org

Make WordPress Core

Ticket #28567: 28567.patch

File 28567.patch, 4.0 KB (added by iseulde, 5 years ago)
  • src/wp-includes/css/editor.css

     
    169169        margin: 0;
    170170}
    171171
     172.wpview-selected .mce-statusbar .mce-divider,
     173.wpview-selected .mce-statusbar .mce-path-item {
     174        display: none;
     175}
     176
     177.wpview-selected .mce-statusbar .mce-path-item.mce-last {
     178        display: inline-block;
     179        pointer-events: none;
     180}
     181
    172182.mce-toolbar .mce-btn,
    173183.qt-fullscreen {
    174184        border-color: transparent;
  • src/wp-includes/js/tinymce/plugins/wpview/plugin.js

     
    111111                dom.bind( clipboard, 'beforedeactivate focusin focusout', _stop );
    112112                dom.bind( selected, 'beforedeactivate focusin focusout', _stop );
    113113
     114                tinymce.DOM.addClass( editor.getContainer(), 'wpview-selected' );
     115
    114116                // Make sure that the editor is focused.
    115117                // It is possible that the editor is not focused when the mouse event fires
    116118                // without focus, the selection will not work properly.
     
    586588                dom.removeClass( views, 'wpview-selection-after' );
    587589                dom.removeClass( views, 'wpview-cursor-hide' );
    588590
    589                 if ( view && editor.selection.isCollapsed() && focus ) {
    590                         if ( className === 'wpview-selection-before' || className === 'wpview-selection-after' ) {
    591                                 setViewCursorTries = 0;
    592 
    593                                 // Make sure the cursor arrived in the right node.
    594                                 // This is necessary for Firefox.
    595                                 if ( lKDN === view.previousSibling ) {
    596                                         setViewCursor( true, view );
    597                                         return;
    598                                 } else if ( lKDN === view.nextSibling ) {
    599                                         setViewCursor( false, view );
    600                                         return;
    601                                 }
     591                if ( ! selected ) {
     592                        tinymce.DOM.removeClass( editor.getContainer(), 'wpview-selected' );
     593                }
    602594
    603                                 dom.addClass( view, className );
     595                if ( focus ) {
     596                        if ( view ) {
     597                                if ( className === 'wpview-selection-before' || className === 'wpview-selection-after' && editor.selection.isCollapsed() ) {
     598                                        setViewCursorTries = 0;
    604599
    605                                 cursorInterval = setInterval( function() {
    606                                         if ( dom.hasClass( view, 'wpview-cursor-hide' ) ) {
    607                                                 dom.removeClass( view, 'wpview-cursor-hide' );
    608                                         } else {
    609                                                 dom.addClass( view, 'wpview-cursor-hide' );
     600                                        deselect();
     601
     602                                        tinymce.DOM.addClass( editor.getContainer(), 'wpview-selected' );
     603
     604                                        // Make sure the cursor arrived in the right node.
     605                                        // This is necessary for Firefox.
     606                                        if ( lKDN === view.previousSibling ) {
     607                                                setViewCursor( true, view );
     608                                                return;
     609                                        } else if ( lKDN === view.nextSibling ) {
     610                                                setViewCursor( false, view );
     611                                                return;
    610612                                        }
    611                                 }, 500 );
    612                         // If the cursor happens to be anywhere around the view, then set the cursor properly.
    613                         // Only try this once to prevent a loop. (You never know.)
    614                         } else if ( ! selected && ! setViewCursorTries ) {
    615                                 setViewCursorTries++;
    616                                 setViewCursor( true, view );
     613
     614                                        dom.addClass( view, className );
     615
     616                                        cursorInterval = setInterval( function() {
     617                                                if ( dom.hasClass( view, 'wpview-cursor-hide' ) ) {
     618                                                        dom.removeClass( view, 'wpview-cursor-hide' );
     619                                                } else {
     620                                                        dom.addClass( view, 'wpview-cursor-hide' );
     621                                                }
     622                                        }, 500 );
     623                                // If the cursor lands anywhere else in the view, set the cursor before it.
     624                                // Only try this once to prevent a loop. (You never know.)
     625                                } else if ( ! selected && ! setViewCursorTries ) {
     626                                        setViewCursorTries++;
     627                                        setViewCursor( true, view );
     628                                }
     629                        } else {
     630                                deselect();
    617631                        }
    618632                }
    619633        });
    620634
     635        editor.on( 'resolvename', function( event ) {
     636                var className = event.target.className;
     637
     638                if ( className === 'wpview-clipboard' || className === 'wpview-selection-before' || className === 'wpview-selection-after' ) {
     639                        event.name = editor.dom.getAttrib( getView( event.target ), 'data-wpview-type' );
     640                }
     641        });
     642
    621643        return {
    622644                getViewText: getViewText,
    623645                setViewText: setViewText