Make WordPress Core

Ticket #29293: 29293.4.patch

File 29293.4.patch, 8.8 KB (added by iseulde, 10 years ago)
  • src/wp-admin/js/editor-expand.js

     
    1010                $wrap = $( '#postdivrich' ),
    1111                $contentWrap = $( '#wp-content-wrap' ),
    1212                $tools = $( '#wp-content-editor-tools' ),
    13                 $visualTop,
    14                 $visualEditor,
     13                $visualTop = $(),
     14                $visualEditor = $(),
    1515                $textTop = $( '#ed_toolbar' ),
    1616                $textEditor = $( '#content' ),
    1717                $textEditorClone = $( '<div id="content-textarea-clone"></div>' ),
    1818                $bottom = $( '#post-status-info' ),
    19                 $statusBar,
     19                $menuBar = $(),
     20                $statusBar = $(),
    2021                $sideSortables = $( '#side-sortables' ),
    2122                $postboxContainer = $( '#postbox-container-1' ),
    2223                $postBody = $('#post-body'),
     
    125126                // Get the necessary UI elements.
    126127                $visualTop = $contentWrap.find( '.mce-toolbar-grp' );
    127128                $visualEditor = $contentWrap.find( '.mce-edit-area' );
    128                 $statusBar = $contentWrap.find( '.mce-statusbar' ).filter( ':visible' );
     129                $statusBar = $contentWrap.find( '.mce-statusbar' );
     130                $menuBar = $contentWrap.find( '.mce-menubar' );
    129131
    130132                function mceGetCursorOffset() {
    131133                        var node = editor.selection.getNode(),
     
    162164                        cursorBottom = cursorTop + offset.height;
    163165                        cursorTop = cursorTop - buffer;
    164166                        cursorBottom = cursorBottom + buffer;
    165                         editorTop = $adminBar.outerHeight() + $tools.outerHeight() + $visualTop.outerHeight();
    166                         editorBottom = windowHeight - $bottom.outerHeight();
     167                        editorTop = $adminBar.outerHeight() + $tools.outerHeight() + $menuBar.outerHeight() + $visualTop.outerHeight();
     168                        editorBottom = windowHeight - $bottom.outerHeight() - $statusBar.outerHeight();
    167169
    168170                        // Don't scroll if the node is taller than the visible part of the editor
    169171                        if ( editorBottom - editorTop < offset.height ) {
     
    232234                        contentWrapWidth = $contentWrap.width(),
    233235                        sideSortablesHeight = $sideSortables.height(),
    234236                        $top, $editor, sidebarTop, footerTop, canPin,
    235                         toolsHeight, topPos, topHeight, editorPos, editorHeight, statusBarHeight;
     237                        toolsHeight, topPos, topHeight, editorPos, editorHeight, menuBarHeight, statusBarHeight;
    236238
    237239                if ( visual ) {
    238240                        $top = $visualTop;
     
    247249                topHeight = $top.outerHeight();
    248250                editorPos = $editor.offset().top;
    249251                editorHeight = $editor.outerHeight();
    250                 statusBarHeight = visual ? $statusBar.outerHeight() : 0;
     252                menuBarHeight = $menuBar.outerHeight();
     253                statusBarHeight = $statusBar.outerHeight();
    251254
    252255                // Should we pin?
    253256                canPin = visual ? autoresizeMinHeight + topHeight : autoresizeMinHeight + 20; // 20px from textarea padding
     
    255258
    256259                if ( ! canPin ) {
    257260                        if ( resize ) {
    258                                 $top.css( {
     261                                $tools.css( {
    259262                                        position: 'absolute',
    260263                                        top: 0,
    261                                         borderTop: 'none',
    262                                         width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
     264                                        width: contentWrapWidth
    263265                                } );
    264266
    265                                 $tools.css( {
     267                                $menuBar.css( {
    266268                                        position: 'absolute',
    267269                                        top: 0,
    268                                         width: contentWrapWidth
     270                                        width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
    269271                                } );
    270272
    271                                 $bottom.css( {
    272                                         position: 'relative',
    273                                         bottom: 'auto',
    274                                         width: '100%',
    275                                         borderTop: 'none'
     273                                $top.css( {
     274                                        position: 'absolute',
     275                                        top: 0 + menuBarHeight,
     276                                        width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
    276277                                } );
     278
     279                                $statusBar.add( $bottom ).attr( 'style', '' );
    277280                        }
    278281                } else {
    279282                        // Maybe pin the top.
    280283                        if ( ( ! fixedTop || resize ) &&
    281                                 // Handle scrolling down.
    282                                 ( windowPos >= ( topPos - toolsHeight - adminBarHeight ) &&
    283                                 // Handle scrolling up.
    284                                 windowPos <= ( topPos - toolsHeight - adminBarHeight + editorHeight - buffer ) ) ) {
    285 
     284                                        // Handle scrolling down.
     285                                        ( windowPos >= ( topPos - toolsHeight - adminBarHeight ) &&
     286                                        // Handle scrolling up.
     287                                        windowPos <= ( topPos - toolsHeight - adminBarHeight + editorHeight - buffer ) ) ) {
    286288                                fixedTop = true;
    287289
    288                                 $top.css( {
     290                                $tools.css( {
     291                                        position: 'fixed',
     292                                        top: adminBarHeight,
     293                                        width: contentWrapWidth,
     294                                        borderBottom: '1px solid #dedede'
     295                                } );
     296
     297                                $menuBar.css( {
    289298                                        position: 'fixed',
    290299                                        top: adminBarHeight + toolsHeight,
    291                                         width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) ),
    292                                         borderTop: '1px solid #e5e5e5'
     300                                        width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
    293301                                } );
    294302
    295                                 $tools.css( {
     303                                $top.css( {
    296304                                        position: 'fixed',
    297                                         top: adminBarHeight,
    298                                         width: contentWrapWidth
     305                                        top: adminBarHeight + toolsHeight + menuBarHeight,
     306                                        width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
    299307                                } );
    300308                        // Maybe unpin the top.
    301309                        } else if ( fixedTop || resize ) {
     
    303311                                if ( windowPos <= ( topPos - toolsHeight - adminBarHeight ) ) {
    304312                                        fixedTop = false;
    305313
    306                                         $top.css( {
     314                                        $tools.css( {
    307315                                                position: 'absolute',
    308316                                                top: 0,
    309                                                 borderTop: 'none',
    310                                                 width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
     317                                                width: contentWrapWidth,
     318                                                borderBottom: ''
    311319                                        } );
    312320
    313                                         $tools.css( {
     321                                        $menuBar.css( {
    314322                                                position: 'absolute',
    315323                                                top: 0,
    316                                                 width: contentWrapWidth
     324                                                width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
     325                                        } );
     326
     327                                        $top.css( {
     328                                                position: 'absolute',
     329                                                top: 0 + menuBarHeight,
     330                                                width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
    317331                                        } );
    318332                                // Handle scrolling down.
    319333                                } else if ( windowPos >= ( topPos - toolsHeight - adminBarHeight + editorHeight - buffer ) ) {
    320334                                        fixedTop = false;
    321335
    322                                         $top.css( {
     336                                        $tools.css( {
     337                                                position: 'absolute',
     338                                                top: editorHeight - buffer + borderWidth, // border
     339                                                width: contentWrapWidth,
     340                                                borderBottom: '1px solid #dedede'
     341                                        } );
     342
     343                                        $menuBar.css( {
    323344                                                position: 'absolute',
    324345                                                top: editorHeight - buffer,
    325346                                                width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
    326347                                        } );
    327348
    328                                         $tools.css( {
     349                                        $top.css( {
    329350                                                position: 'absolute',
    330                                                 top: editorHeight - buffer + borderWidth, // border
    331                                                 width: contentWrapWidth
     351                                                top: editorHeight - buffer + menuBarHeight,
     352                                                width: contentWrapWidth - ( borderWidth * 2 ) - ( visual ? 0 : ( $top.outerWidth() - $top.width() ) )
    332353                                        } );
    333354                                }
    334355                        }
    335356
    336357                        // Maybe adjust the bottom bar.
    337358                        if ( ( ! fixedBottom || resize ) &&
    338                                 // +[n] for the border around the .wp-editor-container.
    339                                 ( windowPos + windowHeight ) <= ( editorPos + editorHeight + bottomHeight + statusBarHeight + borderWidth ) ) {
    340 
     359                                        // +[n] for the border around the .wp-editor-container.
     360                                        ( windowPos + windowHeight ) <= ( editorPos + editorHeight + bottomHeight + statusBarHeight + borderWidth ) ) {
    341361                                fixedBottom = true;
    342362
     363                                $statusBar.css( {
     364                                        position: 'fixed',
     365                                        bottom: bottomHeight,
     366                                        width: contentWrapWidth - ( borderWidth * 2 ),
     367                                        borderBottom: '1px solid #dedede'
     368                                } );
     369
    343370                                $bottom.css( {
    344371                                        position: 'fixed',
    345372                                        bottom: 0,
    346373                                        width: contentWrapWidth,
    347                                         borderTop: '1px solid #dedede'
     374                                        borderTop: visual ? 'none' : '1px solid #dedede'
    348375                                } );
    349376                        } else if ( ( fixedBottom || resize ) &&
    350377                                        ( windowPos + windowHeight ) > ( editorPos + editorHeight + bottomHeight + statusBarHeight - borderWidth ) ) {
    351378                                fixedBottom = false;
    352379
    353                                 $bottom.css( {
    354                                         position: 'relative',
    355                                         bottom: 'auto',
    356                                         width: '100%',
    357                                         borderTop: 'none'
    358                                 } );
     380                                $statusBar.add( $bottom ).attr( 'style', '' );
    359381                        }
    360382                }
    361383
     
    455477
    456478                        if ( visual ) {
    457479                                $visualEditor.css( {
    458                                         paddingTop: $visualTop.outerHeight()
     480                                        paddingTop: $visualTop.outerHeight() + menuBarHeight
    459481                                } );
    460482                        } else {
    461483                                $textEditor.css( {
     
    554576                fullscreen && fullscreen.pubsub.unsubscribe( 'hidden', fullscreenHide );
    555577
    556578                // Reset all css
    557                 $.each( [ $visualTop, $textTop, $tools, $bottom, $contentWrap, $visualEditor, $textEditor, $sideSortables ], function( i, element ) {
     579                $.each( [ $visualTop, $textTop, $tools, $menuBar, $bottom, $statusBar, $contentWrap, $visualEditor, $textEditor, $sideSortables ], function( i, element ) {
    558580                        element && element.attr( 'style', '' );
    559581                });
    560582
  • src/wp-includes/css/editor.css

     
    368368/* Menubar */
    369369.mce-menubar {
    370370        border-color: #e5e5e5;
     371        background: #fff;
    371372}
    372373
    373374.mce-menubar .mce-btn:focus {