WordPress.org

Make WordPress Core

Ticket #31480: 31480.patch

File 31480.patch, 2.7 KB (added by iseulde, 5 years ago)
  • src/wp-includes/js/mce-view.js

     
    470470                                        var dom = editor.dom,
    471471                                                styles = '',
    472472                                                bodyClasses = editor.getBody().className || '',
     473                                                debouncedResize = _.debounce( resize, 100 ),
    473474                                                iframe, iframeDoc, observer, i;
    474475
    475476                                        tinymce.each( dom.$(
     
    504505
    505506                                        iframeDoc = iframe.contentWindow.document;
    506507
     508                                        function resize() {
     509                                                var $iframe, iframeDocHeight;
     510
     511                                                // Make sure the iframe still exists.
     512                                                if ( iframe.contentWindow ) {
     513                                                        $iframe = $( iframe );
     514                                                        iframeDocHeight = $( iframeDoc.body ).height();
     515
     516                                                        if ( $iframe.height() !== iframeDocHeight ) {
     517                                                                $iframe.height( iframeDocHeight );
     518                                                                editor.nodeChanged();
     519                                                        }
     520                                                }
     521                                        }
     522
     523                                        if ( MutationObserver ) {
     524                                                observer = new MutationObserver( function( mutationRecords ) {
     525                                                        var i = mutationRecords.length,
     526                                                                ii;
     527
     528                                                        debouncedResize();
     529
     530                                                        while ( i-- ) {
     531                                                                ii = mutationRecords[ i ].addedNodes.length;
     532
     533                                                                while ( ii-- ) {
     534                                                                        $( mutationRecords[ i ].addedNodes[ ii ] )
     535                                                                                .find( 'img' ).load( debouncedResize );
     536                                                                }
     537                                                        }
     538                                                } );
     539
     540                                                observer.observe( iframeDoc, {
     541                                                        attributes: true,
     542                                                        childList: true,
     543                                                        subtree: true
     544                                                } );
     545
     546                                                $( node ).one( 'wp-mce-view-unbind', function() {
     547                                                        observer.disconnect();
     548                                                } );
     549                                        } else {
     550                                                for ( i = 1; i < 6; i++ ) {
     551                                                        setTimeout( resize, i * 700 );
     552                                                }
     553                                        }
     554
    507555                                        iframeDoc.open();
    508556
    509557                                        iframeDoc.write(
     
    539587
    540588                                        iframeDoc.close();
    541589
    542                                         function resize() {
    543                                                 var $iframe, iframeDocHeight;
    544 
    545                                                 // Make sure the iframe still exists.
    546                                                 if ( iframe.contentWindow ) {
    547                                                         $iframe = $( iframe );
    548                                                         iframeDocHeight = $( iframeDoc.body ).height();
    549 
    550                                                         if ( $iframe.height() !== iframeDocHeight ) {
    551                                                                 $iframe.height( iframeDocHeight );
    552                                                                 editor.nodeChanged();
    553                                                         }
    554                                                 }
    555                                         }
    556 
    557                                         if ( MutationObserver ) {
    558                                                 observer = new MutationObserver( _.debounce( resize, 100 ) );
    559 
    560                                                 observer.observe( iframeDoc.body, {
    561                                                         attributes: true,
    562                                                         childList: true,
    563                                                         subtree: true
    564                                                 } );
    565 
    566                                                 $( node ).one( 'wp-mce-view-unbind', function() {
    567                                                         observer.disconnect();
    568                                                 } );
    569                                         } else {
    570                                                 for ( i = 1; i < 6; i++ ) {
    571                                                         setTimeout( resize, i * 700 );
    572                                                 }
    573                                         }
    574 
    575590                                        function classChange() {
    576591                                                iframeDoc.body.className = editor.getBody().className;
    577592                                        }