Make WordPress Core

Changeset 27110


Ignore:
Timestamp:
02/06/2014 07:33:13 PM (12 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.