Editor: fix jumpiness on pressing backspace and delete in the Text editor.

Fixes #37690 for trunk.
Built from https://develop.svn.wordpress.org/trunk@38426


git-svn-id: http://core.svn.wordpress.org/trunk@38367 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Andrew Ozz 2016-08-28 18:40:31 +00:00
parent b67367b6f8
commit bbc12c3dbe
4 changed files with 44 additions and 40 deletions

View File

@ -53,6 +53,47 @@
sideSortablesHeight: 0
};
var shrinkTextarea = window._.throttle( function() {
var x = window.scrollX || document.documentElement.scrollLeft;
var y = window.scrollY || document.documentElement.scrollTop;
var height = parseInt( textEditor.style.height, 10 );
textEditor.style.height = autoresizeMinHeight + 'px';
if ( textEditor.scrollHeight > autoresizeMinHeight ) {
textEditor.style.height = textEditor.scrollHeight + 'px';
}
if ( typeof x !== 'undefined' ) {
window.scrollTo( x, y );
}
if ( textEditor.scrollHeight < height ) {
adjust();
}
}, 300 );
function textEditorResize() {
var length = textEditor.value.length;
if ( mceEditor && ! mceEditor.isHidden() ) {
return;
}
if ( ! mceEditor && initialMode === 'tinymce' ) {
return;
}
if ( length < oldTextLength ) {
shrinkTextarea();
} else if ( parseInt( textEditor.style.height, 10 ) < textEditor.scrollHeight ) {
textEditor.style.height = Math.ceil( textEditor.scrollHeight ) + 'px';
adjust();
}
oldTextLength = length;
}
function getHeights() {
var windowWidth = $window.width();
@ -75,43 +116,6 @@
}
}
function textEditorResize() {
if ( mceEditor && ! mceEditor.isHidden() ) {
return;
}
if ( ! mceEditor && initialMode === 'tinymce' ) {
return;
}
var length = textEditor.value.length;
var height = parseInt( textEditor.style.height, 10 );
var top = window.scrollTop;
if ( length < oldTextLength ) {
// textEditor.scrollHeight is not adjusted until the next line.
textEditor.style.height = 'auto';
if ( textEditor.scrollHeight > autoresizeMinHeight ) {
textEditor.style.height = textEditor.scrollHeight + 'px';
} else {
textEditor.style.height = autoresizeMinHeight + 'px';
}
// Prevent scroll-jumping in Firefox and IE.
window.scrollTop = top;
if ( textEditor.scrollHeight < height ) {
adjust();
}
} else if ( height < textEditor.scrollHeight ) {
textEditor.style.height = textEditor.scrollHeight + 'px';
adjust();
}
oldTextLength = length;
}
// We need to wait for TinyMCE to initialize.
$document.on( 'tinymce-editor-init.editor-expand', function( event, editor ) {
var VK = window.tinymce.util.VK,

File diff suppressed because one or more lines are too long

View File

@ -554,7 +554,7 @@ function wp_default_scripts( &$scripts ) {
'suggestedImgAlt' => __( 'Suggested image #%d' ),
) );
$scripts->add( 'editor-expand', "/wp-admin/js/editor-expand$suffix.js", array( 'jquery' ), false, 1 );
$scripts->add( 'editor-expand', "/wp-admin/js/editor-expand$suffix.js", array( 'jquery', 'underscore' ), false, 1 );
$scripts->add( 'link', "/wp-admin/js/link$suffix.js", array( 'wp-lists', 'postbox' ), false, 1 );

View File

@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
$wp_version = '4.7-alpha-38425';
$wp_version = '4.7-alpha-38426';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.