Make WordPress Core

Changeset 27110


Ignore:
Timestamp:
02/06/2014 07:33:13 PM (11 years ago)
Author:
azaozz
Message:

Fix scrolling inside the Visual editor on MacOS, add the same functionality to the Text editor, see #27013

Location:
trunk/src
Files:
2 edited

Legend:

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

    r27079 r27110  
    375375        last = 0,
    376376        co = $('#content'),
     377        $document = $(document),
    377378        $editSlugWrap = $('#edit-slug-box'),
    378379        postId = $('#post_ID').val() || 0,
     
    510511    }
    511512
    512     $(document).on( 'autosave-disable-buttons.edit-post', function() {
     513    $document.on( 'autosave-disable-buttons.edit-post', function() {
    513514        $submitButtons.addClass( 'disabled' );
    514515    }).on( 'autosave-enable-buttons.edit-post', function() {
     
    941942    // word count
    942943    if ( typeof(wpWordCount) != 'undefined' ) {
    943         $(document).triggerHandler('wpcountwords', [ co.val() ]);
     944        $document.triggerHandler('wpcountwords', [ co.val() ]);
    944945
    945946        co.keyup( function(e) {
     
    950951
    951952            if ( 13 == k || 8 == last || 46 == last )
    952                 $(document).triggerHandler('wpcountwords', [ co.val() ]);
     953                $document.triggerHandler('wpcountwords', [ co.val() ]);
    953954
    954955            last = k;
     
    986987    ( function() {
    987988        var editor, offset, mce,
    988             $document = $( document ),
    989989            $textarea = $('textarea#content'),
    990990            $handle = $('#post-status-info');
     
    10641064        });
    10651065    }
     1066
     1067    if ( ! ( 'ontouchstart' in window ) ) {
     1068        // When scrolling with mouse wheel or trackpad inside the Text editor, don't scroll the whole window
     1069        var $content = $('#content').on( 'onwheel' in $document[0] ? 'wheel.text-editor-scroll' : 'mousewheel.text-editor-scroll', function( event ) {
     1070            var delta, origEvent = event.originalEvent;
     1071
     1072            if ( wp.editor && wp.editor.fullscreen.settings.visible ) {
     1073                return;
     1074            }
     1075
     1076            if ( typeof origEvent.deltaY !== 'undefined' ) {
     1077                delta = origEvent.deltaY;
     1078
     1079                if ( typeof origEvent.deltaMode !== 'undefined' && origEvent.deltaMode === origEvent.DOM_DELTA_LINE ) {
     1080                    delta *= 20;
     1081                }
     1082            } else {
     1083                delta = -origEvent.wheelDelta;
     1084            }
     1085
     1086            $content.scrollTop( $content.scrollTop() + delta );
     1087            event.preventDefault();
     1088        });
     1089    }
    10661090});
  • trunk/src/wp-includes/js/tinymce/plugins/wordpress/plugin.js

    r27095 r27110  
    316316        }
    317317
    318         // When scrolling with mouse wheel or trackpad inside the editor, don't scroll the parent window
    319         editor.dom.bind( doc, 'onwheel' in doc ? 'wheel' : 'mousewheel', function( event ) {
    320             var delta, docElement = doc.documentElement;
    321 
    322             if ( editor.settings.wp_fullscreen || 'ontouchstart' in window ) {
    323                 return;
    324             }
    325 
    326             if ( typeof event.deltaY !== 'undefined' ) {
    327                 delta = event.deltaY;
    328 
    329                 if ( typeof event.deltaMode !== 'undefined' && event.deltaMode === event.DOM_DELTA_LINE ) {
    330                     delta *= 20;
    331                 }
    332             } else {
    333                 delta = -event.wheelDelta;
    334             }
    335 
    336             // Reverse direction for MacOS
    337             if ( env.mac ) {
    338                 delta *= -1;
    339             }
    340 
    341             event.preventDefault();
    342 
    343             if ( ( docElement.scrollTop === 0 && delta < 0 ) ||
    344                 ( docElement.clientHeight + docElement.scrollTop === docElement.scrollHeight && delta > 0 ) ) {
    345 
    346                 return;
    347             }
    348 
    349             if ( env.webkit ) {
    350                 doc.body.scrollTop += delta;
    351             } else {
    352                 docElement.scrollTop += delta;
    353             }
    354         });
     318        if ( ! ( 'ontouchstart' in window ) ) {
     319            // When scrolling with mouse wheel or trackpad inside the editor, don't scroll the parent window
     320            editor.dom.bind( doc, 'onwheel' in doc ? 'wheel' : 'mousewheel', function( event ) {
     321                var delta, docElement = doc.documentElement;
     322
     323                if ( editor.settings.wp_fullscreen ) {
     324                    return;
     325                }
     326
     327                if ( typeof event.deltaY !== 'undefined' ) {
     328                    delta = event.deltaY;
     329
     330                    if ( typeof event.deltaMode !== 'undefined' && event.deltaMode === event.DOM_DELTA_LINE ) {
     331                        delta *= 20;
     332                    }
     333                } else {
     334                    delta = -event.wheelDelta;
     335                }
     336
     337                event.preventDefault();
     338
     339                if ( env.webkit ) {
     340                    doc.body.scrollTop += delta;
     341                } else {
     342                    docElement.scrollTop += delta;
     343                }
     344            });
     345        }
    355346    });
    356347
Note: See TracChangeset for help on using the changeset viewer.