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:
parent
b67367b6f8
commit
bbc12c3dbe
|
@ -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
|
@ -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 );
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue