]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/js/editor-expand.js
WordPress 4.6.1-scripts
[autoinstalls/wordpress.git] / wp-admin / js / editor-expand.js
index bf67c64e04f7c4c88360cacc0b5e9e139a3c2ffd..aaf34b0bb103590832ee54cfecc6b3971f4967ae 100644 (file)
                                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();
 
                        }
                }
 
-               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,