Make WordPress Core

Changeset 27368


Ignore:
Timestamp:
03/03/2014 02:33:22 AM (11 years ago)
Author:
azaozz
Message:

Editor: throttle scrolling of the main window when the editor is active and is being scrolled with the mouse wheel or a trackpad, see #27013

Location:
trunk/src
Files:
3 edited

Legend:

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

    r27131 r27368  
    371371
    372372jQuery(document).ready( function($) {
    373     var stamp, visibility, $submitButtons, updateVisibility, updateText, $content,
     373    var stamp, visibility, $submitButtons, updateVisibility, updateText, $content, topx, reset,
     374        deltax = 0,
    374375        sticky = '',
    375376        last = 0,
     
    10681069        // When scrolling with mouse wheel or trackpad inside the Text editor, don't scroll the whole window
    10691070        $content = $('#content').on( 'onwheel' in $document[0] ? 'wheel.text-editor-scroll' : 'mousewheel.text-editor-scroll', function( event ) {
    1070             var delta, origEvent = event.originalEvent;
     1071            var delta, top,
     1072                origEvent = event.originalEvent;
    10711073
    10721074            if ( wp.editor && wp.editor.fullscreen.settings.visible ) {
     1075                return;
     1076            }
     1077
     1078            // Don't modify scrolling when the Text editor is not active.
     1079            if ( document.activeElement && document.activeElement.id !== 'content' ) {
    10731080                return;
    10741081            }
     
    10851092
    10861093            $content.scrollTop( $content.scrollTop() + delta );
     1094
     1095            top = $content.scrollTop();
     1096
     1097            if ( topx === top ) {
     1098                deltax += delta;
     1099
     1100                window.clearTimeout( reset );
     1101                reset = window.setTimeout( function() {
     1102                    deltax = 0;
     1103                }, 1000 );
     1104            } else {
     1105                deltax = 0;
     1106            }
     1107
     1108            topx = top;
     1109
     1110            // Sensitivity: scroll the parent window when over-scrolling by more than 800px
     1111            if ( deltax > 1000 || deltax < -1000 ) {
     1112                return;
     1113            }
     1114
    10871115            event.preventDefault();
    10881116        });
  • trunk/src/wp-includes/js/tinymce/plugins/wordpress/plugin.js

    r27190 r27368  
    277277
    278278    editor.on( 'init', function() {
    279         var env = tinymce.Env,
     279        var env = tinymce.Env, topx, reset,
     280            deltax = 0,
    280281            bodyClass = ['mceContentBody'], // back-compat for themes that use this in editor-style.css...
    281282            doc = editor.getDoc();
     
    319320            // When scrolling with mouse wheel or trackpad inside the editor, don't scroll the parent window
    320321            editor.dom.bind( doc, 'onwheel' in doc ? 'wheel' : 'mousewheel', function( event ) {
    321                 var delta, docElement = doc.documentElement;
     322                var delta, top,
     323                    docElement = doc.documentElement;
    322324
    323325                if ( editor.settings.wp_fullscreen ) {
     326                    return;
     327                }
     328                // Don't modify scrolling when the editor is not active.
     329                if ( typeof doc.hasFocus === 'function' && ! doc.hasFocus() ) {
    324330                    return;
    325331                }
     
    335341                }
    336342
    337                 event.preventDefault();
    338 
    339343                if ( env.webkit ) {
    340344                    doc.body.scrollTop += delta;
     
    342346                    docElement.scrollTop += delta;
    343347                }
     348
     349                top = docElement.scrollTop || doc.body.scrollTop;
     350
     351                if ( topx === top ) {
     352                    deltax += delta;
     353
     354                    window.clearTimeout( reset );
     355                    // Sensitivity: delay before resetting the count of over-scroll pixels
     356                    reset = window.setTimeout( function() {
     357                        deltax = 0;
     358                    }, 1000 );
     359                } else {
     360                    deltax = 0;
     361                }
     362
     363                topx = top;
     364
     365                // Sensitivity: scroll the parent window when over-scrolling by more than 1000px
     366                if ( deltax > 1000 || deltax < -1000 ) {
     367                    return;
     368                }
     369
     370                event.preventDefault();
    344371            });
    345372        }
  • trunk/src/wp-includes/version.php

    r27234 r27368  
    55 * @global string $wp_version
    66 */
    7 $wp_version = '3.9-alpha-27234-src';
     7$wp_version = '3.9-alpha-27368-src';
    88
    99/**
     
    1919 * @global string $tinymce_version
    2020 */
    21 $tinymce_version = '4016-20140211';
     21$tinymce_version = '4016-20140302';
    2222
    2323/**
Note: See TracChangeset for help on using the changeset viewer.