Ticket #36482: 36482.3.patch
File 36482.3.patch, 4.5 KB (added by , 9 years ago) |
---|
-
src/wp-admin/css/edit.css
377 377 position: relative; 378 378 } 379 379 380 #content-textarea-clone {381 z-index: -1;382 position: absolute;383 top: 0;384 visibility: hidden;385 overflow: hidden;386 max-width: 100%;387 border: 1px solid transparent;388 }389 390 380 .wp-editor-expand #wp-content-editor-tools { 391 381 z-index: 1000; 392 382 border-bottom: 1px solid #e5e5e5; -
src/wp-admin/js/editor-expand.js
15 15 $visualEditor = $(), 16 16 $textTop = $( '#ed_toolbar' ), 17 17 $textEditor = $( '#content' ), 18 $textEditorClone = $( '<div id="content-textarea-clone" class="wp-exclude-emoji"></div>' ), 18 textEditor = $textEditor[0], 19 textEditorLength = 0, 19 20 $bottom = $( '#post-status-info' ), 20 21 $menuBar = $(), 21 22 $statusBar = $(), … … 52 53 sideSortablesHeight: 0 53 54 }; 54 55 55 $textEditorClone.insertAfter( $textEditor );56 57 $textEditorClone.css( {58 'font-family': $textEditor.css( 'font-family' ),59 'font-size': $textEditor.css( 'font-size' ),60 'line-height': $textEditor.css( 'line-height' ),61 'white-space': 'pre-wrap',62 'word-wrap': 'break-word'63 } );64 65 56 function getHeights() { 66 57 var windowWidth = $window.width(); 67 58 … … 84 75 } 85 76 } 86 77 87 function textEditorKeyup( event ) {88 var VK = jQuery.ui.keyCode,89 key = event.keyCode,90 range = document.createRange(),91 selStart = $textEditor[0].selectionStart,92 selEnd = $textEditor[0].selectionEnd,93 textNode = $textEditorClone[0].firstChild,94 buffer = 10,95 offset, cursorTop, cursorBottom, editorTop, editorBottom;96 97 if ( selStart && selEnd && selStart !== selEnd ) {98 return;99 }100 101 // These are not TinyMCE ranges.102 try {103 range.setStart( textNode, selStart );104 range.setEnd( textNode, selEnd + 1 );105 } catch ( ex ) {}106 107 offset = range.getBoundingClientRect();108 109 if ( ! offset.height ) {110 return;111 }112 113 cursorTop = offset.top - buffer;114 cursorBottom = cursorTop + offset.height + buffer;115 editorTop = heights.adminBarHeight + heights.toolsHeight + heights.textTopHeight;116 editorBottom = heights.windowHeight - heights.bottomHeight;117 118 if ( cursorTop < editorTop && ( key === VK.UP || key === VK.LEFT || key === VK.BACKSPACE ) ) {119 window.scrollTo( window.pageXOffset, cursorTop + window.pageYOffset - editorTop );120 } else if ( cursorBottom > editorBottom ) {121 window.scrollTo( window.pageXOffset, cursorBottom + window.pageYOffset - editorBottom );122 }123 }124 125 78 function textEditorResize() { 79 var height, reduce; 80 126 81 if ( ( mceEditor && ! mceEditor.isHidden() ) || ( ! mceEditor && initialMode === 'tinymce' ) ) { 127 82 return; 128 83 } 129 84 130 var textEditorHeight = $textEditor.height(), 131 hiddenHeight; 132 133 $textEditorClone.width( $textEditor.width() - 22 ); 134 $textEditorClone.text( $textEditor.val() + ' ' ); 135 136 hiddenHeight = $textEditorClone.height(); 85 reduce = textEditorLength > ( textEditorLength = textEditor.value.length ); 86 height = parseInt( textEditor.style.height, 10 ); 137 87 138 if ( hiddenHeight < autoresizeMinHeight ) { 139 hiddenHeight = autoresizeMinHeight; 140 } 141 142 if ( hiddenHeight === textEditorHeight ) { 143 return; 88 if ( reduce ) { 89 textEditor.style.height = 'auto'; 90 textEditor.style.height = textEditor.scrollHeight + 'px'; 91 adjust(); 92 } else if ( height < textEditor.scrollHeight ) { 93 textEditor.style.height = textEditor.scrollHeight + 'px'; 94 adjust(); 144 95 } 145 146 $textEditor.height( hiddenHeight );147 148 adjust();149 96 } 150 97 151 98 // We need to wait for TinyMCE to initialize. … … 474 421 475 422 if ( event && event.deltaHeight > 0 && event.deltaHeight < 100 ) { 476 423 window.scrollBy( 0, event.deltaHeight ); 477 } else if ( advanced ) {424 } else if ( visual && advanced ) { 478 425 fixedBottom = true; 479 426 480 427 $statusBar.css( { … … 603 550 $textEditor.css( { 604 551 marginTop: heights.textTopHeight 605 552 } ); 606 607 $textEditorClone.width( contentWrapWidth - 20 - ( borderWidth * 2 ) );608 553 } 609 554 } 610 555 } … … 660 605 }); 661 606 662 607 $textEditor.on( 'focus.editor-expand input.editor-expand propertychange.editor-expand', textEditorResize ); 663 $textEditor.on( 'keyup.editor-expand', textEditorKeyup );664 608 mceBind(); 665 609 666 610 // Adjust when entering/exiting fullscreen mode.