Make WordPress Core

Changeset 42183 for trunk


Ignore:
Timestamp:
11/15/2017 12:20:21 AM (7 years ago)
Author:
westonruter
Message:

Editor: Improve scrolling behavior and prevent autosave logic from causing dirty state when just switching between Visual and Text tabs.

Props pento.
See #41962, #42029.
Fixes #42530 for trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/js/editor.js

    r42177 r42183  
    271271                for ( var i = 0; i < shortcodes.length; i++ ) {
    272272                    var shortcode = shortcodes[ i ].replace( /^\[+/g, '' );
    273    
     273
    274274                    if ( result.indexOf( shortcode ) === -1 ) {
    275275                        result.push( shortcode );
     
    582582            removeSelectionMarker( startNode );
    583583            removeSelectionMarker( endNode );
     584
     585            editor.save();
    584586        }
    585587
     
    624626                edTools = $( '#wp-content-editor-tools' ),
    625627                edToolsHeight = 0,
    626                 edToolsOffsetTop = 0;
     628                edToolsOffsetTop = 0,
     629
     630                $scrollArea;
    627631
    628632            if ( edTools.length ) {
     
    649653             * the top of the viewport (under the Master Bar)
    650654             */
    651             var adjustedScroll = Math.max( selectionPosition - visibleAreaHeight / 2, edToolsOffsetTop - edToolsHeight );
    652 
    653             $( 'html,body' ).animate( {
     655            var adjustedScroll;
     656            if ( editor.settings.wp_autoresize_on ) {
     657                $scrollArea = $( 'html,body' );
     658                adjustedScroll = Math.max( selectionPosition - visibleAreaHeight / 2, edToolsOffsetTop - edToolsHeight );
     659            } else {
     660                $scrollArea = $( editor.contentDocument ).find( 'html,body' );
     661                adjustedScroll = elementTop;
     662            }
     663
     664            $scrollArea.animate( {
    654665                scrollTop: parseInt( adjustedScroll, 10 )
    655666            }, 100 );
Note: See TracChangeset for help on using the changeset viewer.