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

Built from https://develop.svn.wordpress.org/trunk@27110


git-svn-id: http://core.svn.wordpress.org/trunk@26977 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Andrew Ozz
2014-02-06 19:34:12 +00:00
parent b2e6ad7c32
commit 5ea367cfe1
5 changed files with 52 additions and 37 deletions

View File

@@ -315,43 +315,34 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
window.jQuery( document ).triggerHandler( 'tinymce-editor-init', [editor] );
}
// When scrolling with mouse wheel or trackpad inside the editor, don't scroll the parent window
editor.dom.bind( doc, 'onwheel' in doc ? 'wheel' : 'mousewheel', function( event ) {
var delta, docElement = doc.documentElement;
if ( ! ( 'ontouchstart' in window ) ) {
// When scrolling with mouse wheel or trackpad inside the editor, don't scroll the parent window
editor.dom.bind( doc, 'onwheel' in doc ? 'wheel' : 'mousewheel', function( event ) {
var delta, docElement = doc.documentElement;
if ( editor.settings.wp_fullscreen || 'ontouchstart' in window ) {
return;
}
if ( typeof event.deltaY !== 'undefined' ) {
delta = event.deltaY;
if ( typeof event.deltaMode !== 'undefined' && event.deltaMode === event.DOM_DELTA_LINE ) {
delta *= 20;
if ( editor.settings.wp_fullscreen ) {
return;
}
} else {
delta = -event.wheelDelta;
}
// Reverse direction for MacOS
if ( env.mac ) {
delta *= -1;
}
if ( typeof event.deltaY !== 'undefined' ) {
delta = event.deltaY;
event.preventDefault();
if ( typeof event.deltaMode !== 'undefined' && event.deltaMode === event.DOM_DELTA_LINE ) {
delta *= 20;
}
} else {
delta = -event.wheelDelta;
}
if ( ( docElement.scrollTop === 0 && delta < 0 ) ||
( docElement.clientHeight + docElement.scrollTop === docElement.scrollHeight && delta > 0 ) ) {
event.preventDefault();
return;
}
if ( env.webkit ) {
doc.body.scrollTop += delta;
} else {
docElement.scrollTop += delta;
}
});
if ( env.webkit ) {
doc.body.scrollTop += delta;
} else {
docElement.scrollTop += delta;
}
});
}
});
// Word count

File diff suppressed because one or more lines are too long