WordPress.org

Make WordPress Core

Changeset 32677


Ignore:
Timestamp:
06/01/2015 05:37:14 PM (3 years ago)
Author:
azaozz
Message:

Editor:

  • Remove the old DFW.
  • Add back-compat stub for wp-fullscreen.js.
  • Keep wp_ajax_wp_fullscreen_save_post() for now.

See #30949.

Location:
trunk/src
Files:
1 deleted
12 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/admin-ajax.php

    r32116 r32677  
    5757    'menu-locations-save', 'menu-quick-search', 'meta-box-order', 'get-permalink',
    5858    'sample-permalink', 'inline-save', 'inline-save-tax', 'find_posts', 'widgets-order',
    59     'save-widget', 'set-post-thumbnail', 'date_format', 'time_format', 'wp-fullscreen-save-post',
     59    'save-widget', 'set-post-thumbnail', 'date_format', 'time_format',
    6060    'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment',
    6161    'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor',
     
    6565    'press-this-add-category',
    6666);
     67
     68// Deprecated
     69$core_actions_post[] = 'wp-fullscreen-save-post';
    6770
    6871// Register core Ajax calls.
  • trunk/src/wp-admin/css/edit.css

    r32071 r32677  
    7171}
    7272
    73 #wp-fullscreen-save .fs-saved {
    74     color: #999;
    75     float: right;
    76     margin-top: 4px;
    77 }
    78 
    7973#poststuff .inside-submitbox,
    8074#side-sortables .inside-submitbox {
     
    390384    border: 1px solid transparent;
    391385}
    392 
    393 .wp-fullscreen-wrap #content-textarea-clone {
    394     display: none;
    395 }
    396 
    397 /* editor-expand.js override */
    398 .wp-fullscreen-wrap {
    399     padding-top: 0 !important;
    400 }
    401 
    402 .wp-fullscreen-wrap .wp-editor-area {
    403     margin-top: 0 !important;
    404 }
    405 
    406 .wp-fullscreen-wrap .mce-edit-area {
    407     padding-top: 0 !important;
    408 }
    409 /* end editor-expand.js override */
    410386
    411387.wp-editor-expand #wp-content-editor-tools {
  • trunk/src/wp-admin/css/ie.css

    r32051 r32677  
    4949.welcome-panel .welcome-panel-column:first-child {
    5050    width: 35%;
    51 }
    52 
    53 .wp-fullscreen-title {
    54     width: 97%;
    55 }
    56 
    57 #wp_mce_fullscreen_ifr {
    58     background-color: #f9f9f9;
    59 }
    60 
    61 #wp-fullscreen-tagline {
    62     color: #82878c;
    63     font-size: 14px;
    6451}
    6552
  • trunk/src/wp-admin/css/l10n.css

    r31843 r32677  
    5555.locale-zh-cn form.upgrade .hint { font-style: normal; font-size: 100%; }
    5656
    57 /* Zn_CH: Distraction-free writing.
    58  *  More beautiful font for "Just write."
    59  *  Larger text for HTML/Visual mode.
    60  */
    61 .locale-zh-cn #wp-fullscreen-tagline { font-family: KaiTi, "楷体", sans-serif; }
    62 .locale-zh-cn #wp-fullscreen-modes a { font-size: 12px; }
    63 
    6457/* zh_CN: Enlarge font-size. */
    6558.locale-zh-cn #sort-buttons { font-size: 1em !important; }
  • trunk/src/wp-admin/includes/ajax-actions.php

    r32652 r32677  
    21032103 *
    21042104 * @since 3.1.0
     2105 * @deprecated 4.3.0
    21052106 */
    21062107function wp_ajax_wp_fullscreen_save_post() {
  • trunk/src/wp-admin/js/wp-fullscreen-stub.js

    r32676 r32677  
    1 /* global deleteUserSetting, setUserSetting, switchEditors, tinymce, tinyMCEPreInit */
    21/**
    3  * Distraction-Free Writing
    4  * (wp-fullscreen)
     2 * Distraction-Free Writing (wp-fullscreen) backwards compatibility stub.
     3 * Todo: remove at the end of 2016.
    54 *
    6  * Access the API globally using the window.wp.editor.fullscreen variable.
     5 * Original was deprecated in 4.1, removed in 4.3.
    76 */
    8 ( function( $, window ) {
    9     var api, ps, s, toggleUI, uiTimer, PubSub,
    10         uiScrollTop = 0,
    11         transitionend = 'transitionend webkitTransitionEnd',
    12         $body = $( document.body ),
    13         $document = $( document );
     7( function() {
     8    var noop = function(){};
    149
    15     /**
    16      * PubSub
    17      *
    18      * A lightweight publish/subscribe implementation.
    19      *
    20      * @access private
    21      */
    22     PubSub = function() {
    23         this.topics = {};
     10    window.wp = window.wp || {};
     11    window.wp.editor = window.wp.editor || {};
     12    window.wp.editor.fullscreen = {
     13        bind_resize: noop,
     14        dfwWidth: noop,
     15        off: noop,
     16        on: noop,
     17        refreshButtons: noop,
     18        resizeTextarea: noop,
     19        save: noop,
     20        switchmode: noop,
     21        toggleUI: noop,
    2422
    25         this.subscribe = function( topic, callback ) {
    26             if ( ! this.topics[ topic ] )
    27                 this.topics[ topic ] = [];
    28 
    29             this.topics[ topic ].push( callback );
    30             return callback;
    31         };
    32 
    33         this.unsubscribe = function( topic, callback ) {
    34             var i, l,
    35                 topics = this.topics[ topic ];
    36 
    37             if ( ! topics )
    38                 return callback || [];
    39 
    40             // Clear matching callbacks
    41             if ( callback ) {
    42                 for ( i = 0, l = topics.length; i < l; i++ ) {
    43                     if ( callback == topics[i] )
    44                         topics.splice( i, 1 );
    45                 }
    46                 return callback;
    47 
    48             // Clear all callbacks
    49             } else {
    50                 this.topics[ topic ] = [];
    51                 return topics;
    52             }
    53         };
    54 
    55         this.publish = function( topic, args ) {
    56             var i, l, broken,
    57                 topics = this.topics[ topic ];
    58 
    59             if ( ! topics )
    60                 return;
    61 
    62             args = args || [];
    63 
    64             for ( i = 0, l = topics.length; i < l; i++ ) {
    65                 broken = ( topics[i].apply( null, args ) === false || broken );
    66             }
    67             return ! broken;
    68         };
    69     };
    70 
    71     // Initialize the fullscreen/api object
    72     api = {};
    73 
    74     // Create the PubSub (publish/subscribe) interface.
    75     ps = api.pubsub = new PubSub();
    76 
    77     s = api.settings = { // Settings
    78         visible: false,
    79         mode: 'tinymce',
    80         id: '',
    81         title_id: '',
    82         timer: 0,
    83         toolbar_shown: false
    84     };
    85 
    86     function _hideUI() {
    87         $body.removeClass('wp-dfw-show-ui');
    88     }
    89 
    90     /**
    91      * toggleUI
    92      *
    93      * Toggle the CSS class to show/hide the toolbar, borders and statusbar.
    94      */
    95     toggleUI = api.toggleUI = function( show ) {
    96         clearTimeout( uiTimer );
    97 
    98         if ( ! $body.hasClass('wp-dfw-show-ui') || show === 'show' ) {
    99             $body.addClass('wp-dfw-show-ui');
    100         } else if ( show !== 'autohide' ) {
    101             $body.removeClass('wp-dfw-show-ui');
    102         }
    103 
    104         if ( show === 'autohide' ) {
    105             uiTimer = setTimeout( _hideUI, 2000 );
     23        settings: {},
     24        pubsub: {
     25            publish: noop,
     26            subscribe: noop,
     27            unsubscribe: noop,
     28            topics: {}
     29        },
     30        fade: {
     31            In: noop,
     32            Out: noop
     33        },
     34        ui: {
     35            fade: noop,
     36            init: noop
    10637        }
    10738    };
    108 
    109     function resetCssPosition( add ) {
    110         s.$dfwWrap.parents().each( function( i, parent ) {
    111             var cssPosition, $parent = $(parent);
    112 
    113             if ( add ) {
    114                 if ( parent.style.position ) {
    115                     $parent.data( 'wp-dfw-css-position', parent.style.position );
    116                 }
    117 
    118                 $parent.css( 'position', 'static' );
    119             } else {
    120                 cssPosition = $parent.data( 'wp-dfw-css-position' );
    121                 cssPosition = cssPosition || '';
    122                 $parent.css( 'position', cssPosition );
    123             }
    124 
    125             if ( parent.nodeName === 'BODY' ) {
    126                 return false;
    127             }
    128         });
    129     }
    130 
    131     /**
    132      * on()
    133      *
    134      * Turns fullscreen on.
    135      *
    136      * @param string mode Optional. Switch to the given mode before opening.
    137      */
    138     api.on = function() {
    139         var id, $dfwWrap, titleId;
    140 
    141         if ( s.visible ) {
    142             return;
    143         }
    144 
    145         if ( ! s.$fullscreenFader ) {
    146             api.ui.init();
    147         }
    148 
    149         // Settings can be added or changed by defining "wp_fullscreen_settings" JS object.
    150         if ( typeof window.wp_fullscreen_settings === 'object' )
    151             $.extend( s, window.wp_fullscreen_settings );
    152 
    153         id = s.id || window.wpActiveEditor;
    154 
    155         if ( ! id ) {
    156             if ( s.hasTinymce ) {
    157                 id = tinymce.activeEditor.id;
    158             } else {
    159                 return;
    160             }
    161         }
    162 
    163         s.id = id;
    164         $dfwWrap = s.$dfwWrap = $( '#wp-' + id + '-wrap' );
    165 
    166         if ( ! $dfwWrap.length ) {
    167             return;
    168         }
    169 
    170         s.$dfwTextarea = $( '#' + id );
    171         s.$editorContainer = $dfwWrap.find( '.wp-editor-container' );
    172         uiScrollTop = $document.scrollTop();
    173 
    174         if ( s.hasTinymce ) {
    175             s.editor = tinymce.get( id );
    176         }
    177 
    178         if ( s.editor && ! s.editor.isHidden() ) {
    179             s.origHeight = $( '#' + id + '_ifr' ).height();
    180             s.mode = 'tinymce';
    181         } else {
    182             s.origHeight = s.$dfwTextarea.height();
    183             s.mode = 'html';
    184         }
    185 
    186         // Try to find title field
    187         if ( typeof window.adminpage !== 'undefined' &&
    188             ( window.adminpage === 'post-php' || window.adminpage === 'post-new-php' ) ) {
    189 
    190             titleId = 'title';
    191         } else {
    192             titleId = id + '-title';
    193         }
    194 
    195         s.$dfwTitle = $( '#' + titleId );
    196 
    197         if ( ! s.$dfwTitle.length ) {
    198             s.$dfwTitle = null;
    199         }
    200 
    201         api.ui.fade( 'show', 'showing', 'shown' );
    202     };
    203 
    204     /**
    205      * off()
    206      *
    207      * Turns fullscreen off.
    208      */
    209     api.off = function() {
    210         if ( ! s.visible )
    211             return;
    212 
    213         api.ui.fade( 'hide', 'hiding', 'hidden' );
    214     };
    215 
    216     /**
    217      * switchmode()
    218      *
    219      * @return string - The current mode.
    220      *
    221      * @param string to - The fullscreen mode to switch to.
    222      * @event switchMode
    223      * @eventparam string to   - The new mode.
    224      * @eventparam string from - The old mode.
    225      */
    226     api.switchmode = function( to ) {
    227         var from = s.mode;
    228 
    229         if ( ! to || ! s.visible || ! s.hasTinymce || typeof switchEditors === 'undefined' ) {
    230             return from;
    231         }
    232 
    233         // Don't switch if the mode is the same.
    234         if ( from == to )
    235             return from;
    236 
    237         if ( to === 'tinymce' && ! s.editor ) {
    238             s.editor = tinymce.get( s.id );
    239 
    240             if ( ! s.editor &&  typeof tinyMCEPreInit !== 'undefined' &&
    241                 tinyMCEPreInit.mceInit && tinyMCEPreInit.mceInit[ s.id ] ) {
    242 
    243                 // If the TinyMCE instance hasn't been created, set the "wp_fulscreen" flag on creating it
    244                 tinyMCEPreInit.mceInit[ s.id ].wp_fullscreen = true;
    245             }
    246         }
    247 
    248         s.mode = to;
    249         switchEditors.go( s.id, to );
    250         api.refreshButtons( true );
    251 
    252         if ( to === 'html' ) {
    253             setTimeout( api.resizeTextarea, 200 );
    254         }
    255 
    256         return to;
    257     };
    258 
    259     /**
    260      * General
    261      */
    262 
    263     api.save = function() {
    264         var $hidden = $('#hiddenaction'),
    265             oldVal = $hidden.val(),
    266             $spinner = $('#wp-fullscreen-save .spinner'),
    267             $saveMessage = $('#wp-fullscreen-save .wp-fullscreen-saved-message'),
    268             $errorMessage = $('#wp-fullscreen-save .wp-fullscreen-error-message');
    269 
    270         $spinner.addClass( 'is-active' );
    271         $errorMessage.hide();
    272         $saveMessage.hide();
    273         $hidden.val('wp-fullscreen-save-post');
    274 
    275         if ( s.editor && ! s.editor.isHidden() ) {
    276             s.editor.save();
    277         }
    278 
    279         $.ajax({
    280             url: window.ajaxurl,
    281             type: 'post',
    282             data: $('form#post').serialize(),
    283             dataType: 'json'
    284         }).done( function( response ) {
    285             $spinner.removeClass( 'is-active' );
    286 
    287             if ( response && response.success ) {
    288                 $saveMessage.show();
    289 
    290                 setTimeout( function() {
    291                     $saveMessage.fadeOut(300);
    292                 }, 3000 );
    293 
    294                 if ( response.data && response.data.last_edited ) {
    295                     $('#wp-fullscreen-save input').attr( 'title',  response.data.last_edited );
    296                 }
    297             } else {
    298                 $errorMessage.show();
    299             }
    300         }).fail( function() {
    301             $spinner.removeClass( 'is-active' );
    302             $errorMessage.show();
    303         });
    304 
    305         $hidden.val( oldVal );
    306     };
    307 
    308     api.dfwWidth = function( pixels, total ) {
    309         var width;
    310 
    311         if ( pixels && pixels.toString().indexOf('%') !== -1 ) {
    312             s.$editorContainer.css( 'width', pixels );
    313             s.$statusbar.css( 'width', pixels );
    314 
    315             if ( s.$dfwTitle ) {
    316                 s.$dfwTitle.css( 'width', pixels );
    317             }
    318             return;
    319         }
    320 
    321         if ( ! pixels ) {
    322             // Reset to theme width
    323             width = $('#wp-fullscreen-body').data('theme-width') || 800;
    324             s.$editorContainer.width( width );
    325             s.$statusbar.width( width );
    326 
    327             if ( s.$dfwTitle ) {
    328                 s.$dfwTitle.width( width - 16 );
    329             }
    330 
    331             deleteUserSetting('dfw_width');
    332             return;
    333         }
    334 
    335         if ( total ) {
    336             width = pixels;
    337         } else {
    338             width = s.$editorContainer.width();
    339             width += pixels;
    340         }
    341 
    342         if ( width < 200 || width > 1200 ) {
    343             // sanity check
    344             return;
    345         }
    346 
    347         s.$editorContainer.width( width );
    348         s.$statusbar.width( width );
    349 
    350         if ( s.$dfwTitle ) {
    351             s.$dfwTitle.width( width - 16 );
    352         }
    353 
    354         setUserSetting( 'dfw_width', width );
    355     };
    356 
    357     // This event occurs before the overlay blocks the UI.
    358     ps.subscribe( 'show', function() {
    359         var title = $('#last-edit').text();
    360 
    361         if ( title ) {
    362             $('#wp-fullscreen-save input').attr( 'title', title );
    363         }
    364     });
    365 
    366     // This event occurs while the overlay blocks the UI.
    367     ps.subscribe( 'showing', function() {
    368         $body.addClass( 'wp-fullscreen-active' );
    369         s.$dfwWrap.addClass( 'wp-fullscreen-wrap' );
    370 
    371         if ( s.$dfwTitle ) {
    372             s.$dfwTitle.after( '<span id="wp-fullscreen-title-placeholder">' );
    373             s.$dfwWrap.prepend( s.$dfwTitle.addClass('wp-fullscreen-title') );
    374         }
    375 
    376         api.refreshButtons();
    377         resetCssPosition( true );
    378         $('#wpadminbar').hide();
    379 
    380         // Show the UI for 2 sec. when opening
    381         toggleUI('autohide');
    382 
    383         api.bind_resize();
    384 
    385         if ( s.editor ) {
    386             s.editor.execCommand( 'wpFullScreenOn' );
    387         }
    388 
    389         if ( 'ontouchstart' in window ) {
    390             api.dfwWidth( '90%' );
    391         } else {
    392             api.dfwWidth( $( '#wp-fullscreen-body' ).data('dfw-width') || 800, true );
    393         }
    394 
    395         // scroll to top so the user is not disoriented
    396         scrollTo(0, 0);
    397     });
    398 
    399     // This event occurs after the overlay unblocks the UI
    400     ps.subscribe( 'shown', function() {
    401         s.visible = true;
    402 
    403         if ( s.editor && ! s.editor.isHidden() ) {
    404             s.editor.execCommand( 'wpAutoResize' );
    405         } else {
    406             api.resizeTextarea( 'force' );
    407         }
    408     });
    409 
    410     ps.subscribe( 'hide', function() { // This event occurs before the overlay blocks DFW.
    411         $document.unbind( '.fullscreen' );
    412         s.$dfwTextarea.unbind('.wp-dfw-resize');
    413     });
    414 
    415     ps.subscribe( 'hiding', function() { // This event occurs while the overlay blocks the DFW UI.
    416         $body.removeClass( 'wp-fullscreen-active' );
    417 
    418         if ( s.$dfwTitle ) {
    419             $( '#wp-fullscreen-title-placeholder' ).before( s.$dfwTitle.removeClass('wp-fullscreen-title').css( 'width', '' ) ).remove();
    420         }
    421 
    422         s.$dfwWrap.removeClass( 'wp-fullscreen-wrap' );
    423         s.$editorContainer.css( 'width', '' );
    424         s.$dfwTextarea.add( '#' + s.id + '_ifr' ).height( s.origHeight );
    425 
    426         if ( s.editor ) {
    427             s.editor.execCommand( 'wpFullScreenOff' );
    428         }
    429 
    430         resetCssPosition( false );
    431 
    432         window.scrollTo( 0, uiScrollTop );
    433         $('#wpadminbar').show();
    434     });
    435 
    436     // This event occurs after DFW is removed.
    437     ps.subscribe( 'hidden', function() {
    438         s.visible = false;
    439     });
    440 
    441     api.refreshButtons = function( fade ) {
    442         if ( s.mode === 'html' ) {
    443             $('#wp-fullscreen-mode-bar').removeClass('wp-tmce-mode').addClass('wp-html-mode')
    444                 .find('a').removeClass( 'active' ).filter('.wp-fullscreen-mode-html').addClass( 'active' );
    445 
    446             if ( fade ) {
    447                 $('#wp-fullscreen-button-bar').fadeOut( 150, function(){
    448                     $(this).addClass('wp-html-mode').fadeIn( 150 );
    449                 });
    450             } else {
    451                 $('#wp-fullscreen-button-bar').addClass('wp-html-mode');
    452             }
    453         } else if ( s.mode === 'tinymce' ) {
    454             $('#wp-fullscreen-mode-bar').removeClass('wp-html-mode').addClass('wp-tmce-mode')
    455                 .find('a').removeClass( 'active' ).filter('.wp-fullscreen-mode-tinymce').addClass( 'active' );
    456 
    457             if ( fade ) {
    458                 $('#wp-fullscreen-button-bar').fadeOut( 150, function(){
    459                     $(this).removeClass('wp-html-mode').fadeIn( 150 );
    460                 });
    461             } else {
    462                 $('#wp-fullscreen-button-bar').removeClass('wp-html-mode');
    463             }
    464         }
    465     };
    466 
    467     /**
    468      * UI Elements
    469      *
    470      * Used for transitioning between states.
    471      */
    472     api.ui = {
    473         init: function() {
    474             var toolbar;
    475 
    476             s.toolbar = toolbar = $('#fullscreen-topbar');
    477             s.$fullscreenFader = $('#fullscreen-fader');
    478             s.$statusbar = $('#wp-fullscreen-status');
    479             s.hasTinymce = typeof tinymce !== 'undefined';
    480 
    481             if ( ! s.hasTinymce )
    482                 $('#wp-fullscreen-mode-bar').hide();
    483 
    484             $document.keyup( function(e) {
    485                 var c = e.keyCode || e.charCode, modKey;
    486 
    487                 if ( ! s.visible ) {
    488                     return;
    489                 }
    490 
    491                 if ( navigator.platform && navigator.platform.indexOf('Mac') !== -1 ) {
    492                     modKey = e.ctrlKey; // Ctrl key for Mac
    493                 } else {
    494                     modKey = e.altKey; // Alt key for Win & Linux
    495                 }
    496 
    497                 if ( modKey && ( 61 === c || 107 === c || 187 === c ) ) { // +
    498                     api.dfwWidth( 25 );
    499                     e.preventDefault();
    500                 }
    501 
    502                 if ( modKey && ( 45 === c || 109 === c || 189 === c ) ) { // -
    503                     api.dfwWidth( -25 );
    504                     e.preventDefault();
    505                 }
    506 
    507                 if ( modKey && 48 === c ) { // 0
    508                     api.dfwWidth( 0 );
    509                     e.preventDefault();
    510                 }
    511             });
    512 
    513             $( window ).on( 'keydown.wp-fullscreen', function( event ) {
    514                 // Turn fullscreen off when Esc is pressed.
    515                 if ( 27 === event.keyCode && s.visible ) {
    516                     api.off();
    517                     event.stopImmediatePropagation();
    518                 }
    519             });
    520 
    521             if ( 'ontouchstart' in window ) {
    522                 $body.addClass('wp-dfw-touch');
    523             }
    524 
    525             toolbar.on( 'mouseenter', function() {
    526                 toggleUI('show');
    527             }).on( 'mouseleave', function() {
    528                 toggleUI('autohide');
    529             });
    530 
    531             // Bind buttons
    532             $('#wp-fullscreen-buttons').on( 'click.wp-fullscreen', 'button', function( event ) {
    533                 var command = event.currentTarget.id ? event.currentTarget.id.substr(6) : null;
    534 
    535                 if ( s.editor && 'tinymce' === s.mode ) {
    536                     switch( command ) {
    537                         case 'bold':
    538                             s.editor.execCommand('Bold');
    539                             break;
    540                         case 'italic':
    541                             s.editor.execCommand('Italic');
    542                             break;
    543                         case 'bullist':
    544                             s.editor.execCommand('InsertUnorderedList');
    545                             break;
    546                         case 'numlist':
    547                             s.editor.execCommand('InsertOrderedList');
    548                             break;
    549                         case 'link':
    550                             s.editor.execCommand('WP_Link');
    551                             break;
    552                         case 'unlink':
    553                             s.editor.execCommand('unlink');
    554                             break;
    555                         case 'help':
    556                             s.editor.execCommand('WP_Help');
    557                             break;
    558                         case 'blockquote':
    559                             s.editor.execCommand('mceBlockQuote');
    560                             break;
    561                     }
    562                 } else if ( command === 'link' && window.wpLink ) {
    563                     window.wpLink.open();
    564                 }
    565 
    566                 if ( command === 'wp-media-library' && typeof wp !== 'undefined' && wp.media && wp.media.editor ) {
    567                     wp.media.editor.open( s.id );
    568                 }
    569             });
    570         },
    571 
    572         fade: function( before, during, after ) {
    573             if ( ! s.$fullscreenFader ) {
    574                 api.ui.init();
    575             }
    576 
    577             // If any callback bound to before returns false, bail.
    578             if ( before && ! ps.publish( before ) ) {
    579                 return;
    580             }
    581 
    582             api.fade.In( s.$fullscreenFader, 200, function() {
    583                 if ( during ) {
    584                     ps.publish( during );
    585                 }
    586 
    587                 api.fade.Out( s.$fullscreenFader, 200, function() {
    588                     if ( after ) {
    589                         ps.publish( after );
    590                     }
    591                 });
    592             });
    593         }
    594     };
    595 
    596     api.fade = {
    597         // Sensitivity to allow browsers to render the blank element before animating.
    598         sensitivity: 100,
    599 
    600         In: function( element, speed, callback, stop ) {
    601 
    602             callback = callback || $.noop;
    603             speed = speed || 400;
    604             stop = stop || false;
    605 
    606             if ( api.fade.transitions ) {
    607                 if ( element.is(':visible') ) {
    608                     element.addClass( 'fade-trigger' );
    609                     return element;
    610                 }
    611 
    612                 element.show();
    613                 element.first().one( transitionend, function() {
    614                     callback();
    615                 });
    616 
    617                 setTimeout( function() { element.addClass( 'fade-trigger' ); }, this.sensitivity );
    618             } else {
    619                 if ( stop ) {
    620                     element.stop();
    621                 }
    622 
    623                 element.css( 'opacity', 1 );
    624                 element.first().fadeIn( speed, callback );
    625 
    626                 if ( element.length > 1 ) {
    627                     element.not(':first').fadeIn( speed );
    628                 }
    629             }
    630 
    631             return element;
    632         },
    633 
    634         Out: function( element, speed, callback, stop ) {
    635 
    636             callback = callback || $.noop;
    637             speed = speed || 400;
    638             stop = stop || false;
    639 
    640             if ( ! element.is(':visible') ) {
    641                 return element;
    642             }
    643 
    644             if ( api.fade.transitions ) {
    645                 element.first().one( transitionend, function() {
    646                     if ( element.hasClass('fade-trigger') ) {
    647                         return;
    648                     }
    649 
    650                     element.hide();
    651                     callback();
    652                 });
    653                 setTimeout( function() { element.removeClass( 'fade-trigger' ); }, this.sensitivity );
    654             } else {
    655                 if ( stop ) {
    656                     element.stop();
    657                 }
    658 
    659                 element.first().fadeOut( speed, callback );
    660 
    661                 if ( element.length > 1 ) {
    662                     element.not(':first').fadeOut( speed );
    663                 }
    664             }
    665 
    666             return element;
    667         },
    668 
    669         // Check if the browser supports CSS 3.0 transitions
    670         transitions: ( function() {
    671             var style = document.documentElement.style;
    672 
    673             return ( typeof style.WebkitTransition === 'string' ||
    674                 typeof style.MozTransition === 'string' ||
    675                 typeof style.OTransition === 'string' ||
    676                 typeof style.transition === 'string' );
    677         })()
    678     };
    679 
    680     /**
    681      * Resize API
    682      *
    683      * Automatically updates textarea height.
    684      */
    685     api.bind_resize = function() {
    686         s.$dfwTextarea.on( 'keydown.wp-dfw-resize click.wp-dfw-resize paste.wp-dfw-resize', function() {
    687             api.resizeTextarea();
    688         });
    689     };
    690 
    691     api.resizeTextarea = function() {
    692         var node = s.$dfwTextarea[0];
    693 
    694         if ( node.scrollHeight > node.clientHeight ) {
    695             node.style.height = node.scrollHeight + 50 + 'px';
    696         }
    697     };
    698 
    699     // Export
    700     window.wp = window.wp || {};
    701     window.wp.editor = window.wp.editor || {};
    702     window.wp.editor.fullscreen = api;
    703 
    704 })( jQuery, window );
     39}());
  • trunk/src/wp-includes/class-wp-editor.php

    r32543 r32677  
    2626    private static $editor_buttons_css = true;
    2727    private static $drag_drop_upload = false;
     28    private static $old_dfw_compat = false;
    2829
    2930    private function __construct() {}
     
    5455     *     @type bool       $teeny             Whether to output the minimal editor config. Examples include
    5556     *                                         Press This and the Comment editor. Default false.
    56      *     @type bool       $dfw               Whether to replace the default fullscreen with "Distraction Free
    57      *                                         Writing". DFW requires specific DOM elements and css). Default false.
     57     *     @type bool       $dfw               Deprecated in 4.1. Since 4.3 used only to enqueue wp-fullscreen-stub.js for backwards compatibility.
    5858     *     @type bool|array $tinymce           Whether to load TinyMCE. Can be used to pass settings directly to
    5959     *                                         TinyMCE using an array. Default true.
     
    112112            self::$has_quicktags = true;
    113113
     114        if ( $set['dfw'] ) {
     115            self::$old_dfw_compat = true;
     116        }
     117
    114118        if ( empty( $set['editor_height'] ) )
    115119            return $set;
     
    283287            if ( empty($qtInit['buttons']) )
    284288                $qtInit['buttons'] = 'strong,em,link,block,del,ins,img,ul,ol,li,code,more,close';
    285 
    286             if ( $set['dfw'] )
    287                 $qtInit['buttons'] .= ',fullscreen';
    288289
    289290            if ( $set['_content_editor_dfw'] ) {
     
    469470                    }
    470471                }
    471 
    472                 if ( $set['dfw'] )
    473                     $plugins[] = 'wpfullscreen';
    474472
    475473                self::$plugins = $plugins;
     
    638636            }
    639637
    640             if ( $set['dfw'] ) {
    641                 // replace the first 'fullscreen' with 'wp_fullscreen'
    642                 if ( ($key = array_search('fullscreen', $mce_buttons)) !== false )
    643                     $mce_buttons[$key] = 'wp_fullscreen';
    644                 elseif ( ($key = array_search('fullscreen', $mce_buttons_2)) !== false )
    645                     $mce_buttons_2[$key] = 'wp_fullscreen';
    646                 elseif ( ($key = array_search('fullscreen', $mce_buttons_3)) !== false )
    647                     $mce_buttons_3[$key] = 'wp_fullscreen';
    648                 elseif ( ($key = array_search('fullscreen', $mce_buttons_4)) !== false )
    649                     $mce_buttons_4[$key] = 'wp_fullscreen';
    650             }
    651 
    652638            $mceInit = array (
    653639                'selector' => "#$editor_id",
     
    754740        }
    755741
    756         if ( in_array('wpfullscreen', self::$plugins, true) || in_array('fullscreen', self::$qt_buttons, true) )
    757             wp_enqueue_script('wp-fullscreen');
     742        if ( self::$old_dfw_compat ) {
     743            wp_enqueue_script('wp-fullscreen-stub');
     744        }
    758745
    759746        if ( self::$has_medialib ) {
     
    12531240            self::wp_link_dialog();
    12541241
    1255         if ( in_array( 'wpfullscreen', self::$plugins, true ) || in_array( 'fullscreen', self::$qt_buttons, true ) )
    1256             self::wp_fullscreen_html();
    1257 
    12581242        /**
    12591243         * Fires after any core TinyMCE editor instances are created.
     
    12721256     */
    12731257    public static function wp_fullscreen_html() {
    1274         global $content_width;
    1275         $post = get_post();
    1276 
    1277         $width = isset( $content_width ) && 800 > $content_width ? $content_width : 800;
    1278         $width = $width + 22; // compensate for the padding and border
    1279         $dfw_width = get_user_setting( 'dfw_width', $width );
    1280         $save = $post && $post->post_status == 'publish' ? __('Update') : __('Save');
    1281 
    1282         ?>
    1283         <div id="wp-fullscreen-body" class="wp-core-ui<?php if ( is_rtl() ) echo ' rtl'; ?>" data-theme-width="<?php echo (int) $width; ?>" data-dfw-width="<?php echo (int) $dfw_width; ?>">
    1284         <div id="fullscreen-topbar">
    1285             <div id="wp-fullscreen-toolbar">
    1286             <div id="wp-fullscreen-close"><a href="#" onclick="wp.editor.fullscreen.off();return false;"><?php _e('Exit fullscreen'); ?></a></div>
    1287             <div id="wp-fullscreen-central-toolbar" style="width:<?php echo $width; ?>px;">
    1288 
    1289             <div id="wp-fullscreen-mode-bar">
    1290                 <div id="wp-fullscreen-modes" class="button-group">
    1291                     <a class="button wp-fullscreen-mode-tinymce" href="#" onclick="wp.editor.fullscreen.switchmode( 'tinymce' ); return false;"><?php _e( 'Visual' ); ?></a>
    1292                     <a class="button wp-fullscreen-mode-html" href="#" onclick="wp.editor.fullscreen.switchmode( 'html' ); return false;"><?php _ex( 'Text', 'Name for the Text editor tab (formerly HTML)' ); ?></a>
    1293                 </div>
    1294             </div>
    1295 
    1296             <div id="wp-fullscreen-button-bar"><div id="wp-fullscreen-buttons" class="mce-toolbar">
    1297         <?php
    1298 
    1299         $buttons = array(
    1300             // format: title, onclick, show in both editors
    1301             'bold' => array( 'title' => __('Bold (Ctrl + B)'), 'both' => false ),
    1302             'italic' => array( 'title' => __('Italic (Ctrl + I)'), 'both' => false ),
    1303             'bullist' => array( 'title' => __('Unordered list (Alt + Shift + U)'), 'both' => false ),
    1304             'numlist' => array( 'title' => __('Ordered list (Alt + Shift + O)'), 'both' => false ),
    1305             'blockquote' => array( 'title' => __('Blockquote (Alt + Shift + Q)'), 'both' => false ),
    1306             'wp-media-library' => array( 'title' => __('Media library (Alt + Shift + M)'), 'both' => true ),
    1307             'link' => array( 'title' => __('Insert/edit link (Alt + Shift + A)'), 'both' => true ),
    1308             'unlink' => array( 'title' => __('Unlink (Alt + Shift + S)'), 'both' => false ),
    1309             'help' => array( 'title' => __('Help (Alt + Shift + H)'), 'both' => false ),
    1310         );
    1311 
    1312         /**
    1313          * Filter the list of TinyMCE buttons for the fullscreen
    1314          * 'Distraction-Free Writing' editor.
    1315          *
    1316          * @since 3.2.0
    1317          *
    1318          * @param array $buttons An array of TinyMCE buttons for the DFW editor.
    1319          */
    1320         $buttons = apply_filters( 'wp_fullscreen_buttons', $buttons );
    1321 
    1322         foreach ( $buttons as $button => $args ) {
    1323             if ( 'separator' == $args ) {
    1324                 continue;
    1325             }
    1326 
    1327             $onclick = ! empty( $args['onclick'] ) ? ' onclick="' . $args['onclick'] . '"' : '';
    1328             $title = esc_attr( $args['title'] );
    1329             ?>
    1330 
    1331             <div class="mce-widget mce-btn<?php if ( $args['both'] ) { ?> wp-fullscreen-both<?php } ?>">
    1332             <button type="button" aria-label="<?php echo $title; ?>" title="<?php echo $title; ?>"<?php echo $onclick; ?> id="wp_fs_<?php echo $button; ?>">
    1333                 <i class="mce-ico mce-i-<?php echo $button; ?>"></i>
    1334             </button>
    1335             </div>
    1336             <?php
    1337         }
    1338 
    1339         ?>
    1340 
    1341         </div></div>
    1342 
    1343         <div id="wp-fullscreen-save">
    1344             <input type="button" class="button button-primary right" value="<?php echo $save; ?>" onclick="wp.editor.fullscreen.save();" />
    1345             <span class="wp-fullscreen-saved-message"><?php if ( $post && $post->post_status == 'publish' ) _e('Updated.'); else _e('Saved.'); ?></span>
    1346             <span class="wp-fullscreen-error-message"><?php _e('Save failed.'); ?></span>
    1347             <span class="spinner"></span>
    1348         </div>
    1349 
    1350         </div>
    1351         </div>
    1352     </div>
    1353     <div id="wp-fullscreen-statusbar">
    1354         <div id="wp-fullscreen-status">
    1355             <div id="wp-fullscreen-count"><?php printf( __( 'Word count: %s' ), '<span class="word-count">0</span>' ); ?></div>
    1356             <div id="wp-fullscreen-tagline"><?php _e('Just write.'); ?></div>
    1357         </div>
    1358     </div>
    1359     </div>
    1360 
    1361     <div class="fullscreen-overlay" id="fullscreen-overlay"></div>
    1362     <div class="fullscreen-overlay fullscreen-fader fade-300" id="fullscreen-fader"></div>
    1363     <?php
     1258        _deprecated_function( __FUNCTION__, '4.3' );
    13641259    }
    13651260
  • trunk/src/wp-includes/css/editor.css

    r32051 r32677  
    300300}
    301301
    302 #wp-fullscreen-buttons .mce-btn,
    303302.mce-toolbar .mce-btn-group .mce-btn,
    304303.qt-dfw {
     
    312311}
    313312
    314 #wp-fullscreen-buttons .mce-btn:hover,
    315313.mce-toolbar .mce-btn-group .mce-btn:hover,
    316 #wp-fullscreen-buttons .mce-btn:focus,
    317314.mce-toolbar .mce-btn-group .mce-btn:focus,
    318315.qt-dfw:hover,
     
    327324
    328325.mce-toolbar .mce-btn-group .mce-btn.mce-active,
    329 #wp-fullscreen-buttons .mce-btn.mce-active,
    330326.mce-toolbar .mce-btn-group .mce-btn:active,
    331 #wp-fullscreen-buttons .mce-btn:active,
    332327.qt-dfw.active {
    333328    background: #ebebeb;
     
    346341
    347342.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover,
    348 #wp-fullscreen-buttons .mce-btn.mce-disabled:hover,
    349 .mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,
    350 #wp-fullscreen-buttons .mce-btn.mce-disabled:focus {
     343.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus {
    351344    color: #a0a5aa;
    352345    background: none;
     
    11121105    }
    11131106
    1114     #wp-fullscreen-buttons .mce-btn,
    11151107    .mce-toolbar .mce-btn-group .mce-btn {
    11161108        margin: 1px;
     
    16081600}
    16091601
    1610 /* Old TinyMCE 3.x modal */
    1611 /*
    1612 .clearlooks2 .mceTop {
    1613     border-bottom: 1px solid #ccc;
    1614 }
    1615 
    1616 .clearlooks2 .mceTop span {
    1617     font: 13px/24px "Open Sans", sans-serif;
    1618     color: #e5e5e5;
    1619 }
    1620 
    1621 .clearlooks2 .mceTop .mceLeft {
    1622     background: #444444;
    1623     border-color: transparent;
    1624 }
    1625 
    1626 .clearlooks2 .mceTop .mceRight {
    1627     background: #444444;
    1628     border-color: transparent;
    1629 }
    1630 
    1631 .clearlooks2 .mceMiddle {
    1632     clip: rect(24px auto auto auto);
    1633 }
    1634 
    1635 .clearlooks2 .mceMiddle .mceLeft {
    1636     background: #f1f1f1;
    1637     border-color: transparent;
    1638 }
    1639 
    1640 .clearlooks2 .mceMiddle .mceRight {
    1641     background: #f1f1f1;
    1642     border-color: transparent;
    1643 }
    1644 
    1645 .clearlooks2 .mceBottom {
    1646     background: #f1f1f1;
    1647     border-color: transparent;
    1648 }
    1649 
    1650 .clearlooks2 .mceBottom .mceLeft {
    1651     background: #f1f1f1;
    1652     border-color: transparent;
    1653 }
    1654 
    1655 .clearlooks2 .mceBottom .mceCenter {
    1656     background: #f1f1f1;
    1657     border-color: transparent;
    1658 }
    1659 
    1660 .clearlooks2 .mceBottom .mceRight {
    1661     background: #f1f1f1;
    1662     border-color: transparent;
    1663 }
    1664 
    1665 .clearlooks2 .mceClose,
    1666 .clearlooks2 .mceFocus .mceClose,
    1667 .clearlooks2 .mceFocus .mceClose:hover {
    1668     background-image: none;
    1669 }
    1670 .clearlooks2 .mceClose:before {
    1671     content: '\f158';
    1672     font: normal 20px/1 'dashicons';
    1673     speak: none;
    1674     -webkit-font-smoothing: antialiased;
    1675     -moz-osx-font-smoothing: grayscale;
    1676     color: #999;
    1677     padding-left: 12px;
    1678 }
    1679 
    1680 /* from colors.css
    1681 .clearlooks2 {
    1682     box-shadow: 0 5px 15px rgba(0,0,0,0.7);
    1683 }
    1684 
    1685 .clearlooks2 .mceMiddle span,
    1686 .clearlooks2 .mceMiddle .mceLeft,
    1687 .clearlooks2 .mceMiddle .mceRight,
    1688 .clearlooks2 .mceBottom,
    1689 .clearlooks2 .mceBottom .mceLeft,
    1690 .clearlooks2 .mceBottom .mceCenter,
    1691 .clearlooks2 .mceBottom .mceRight {
    1692     background-color: #fcfcfc;
    1693 }
    1694 
    1695 .clearlooks2 .mceTop span,
    1696 .clearlooks2 .mceFocus .mceTop span {
    1697     color: #23282d;
    1698 }
    1699 
    1700 .clearlooks2 .mceClose:before {
    1701     color: #999;
    1702 }
    1703 
    1704 .clearlooks2 .mceClose:hover:before {
    1705     color: #00a0d2;
    1706 }
    1707 */
    1708 /* Distraction-Free Writing mode
    1709  * =Overlay Styles
    1710 -------------------------------------------------------------- */
    1711 .fullscreen-overlay {
    1712     z-index: 100005;
    1713     display: none;
    1714     position: fixed;
    1715     top: 0;
    1716     bottom: 0;
    1717     left: 0;
    1718     right: 0;
    1719     -webkit-filter: inherit;
    1720     filter: inherit;
    1721 }
    1722 
    1723 .wp-fullscreen-active .fullscreen-overlay,
    1724 .wp-fullscreen-active #wp-fullscreen-body {
    1725     display: block;
    1726 }
    1727 
    1728 .fullscreen-fader {
    1729     z-index: 200000;
    1730 }
    1731 
    1732 .wp-fullscreen-active .fullscreen-fader,
    1733 .wp-core-ui.wp-fullscreen-active .postbox-container {
    1734     display: none;
    1735 }
    1736 
    17371602/* =Overlay Body
    17381603-------------------------------------------------------------- */
    17391604
    1740 #wp-fullscreen-body,
    17411605.mce-fullscreen {
    17421606    z-index: 100010;
    1743 }
    1744 
    1745 #wp-fullscreen-body {
    1746     display: none;
    1747 }
    1748 
    1749 .wp-fullscreen-wrap {
    1750     margin: 0;
    1751     padding: 0;
    1752     position: absolute;
    1753     left: 0;
    1754     right: 0;
    1755     bottom: 30px;
    1756     top: 60px;
    1757     z-index: 100015;
    1758 }
    1759 
    1760 .wp-fullscreen-wrap .wp-editor-container,
    1761 .wp-fullscreen-title,
    1762 #wp-fullscreen-central-toolbar {
    1763     -webkit-box-sizing: border-box;
    1764     -moz-box-sizing: border-box;
    1765     box-sizing: border-box;
    1766     max-width: 100%;
    1767 }
    1768 
    1769 .wp-fullscreen-active .wp-editor-tools,
    1770 .wp-fullscreen-active .quicktags-toolbar,
    1771 .wp-fullscreen-active .mce-toolbar-grp,
    1772 .wp-fullscreen-active .mce-statusbar {
    1773     display: none;
    1774 }
    1775 
    1776 #wp-fullscreen-statusbar {
    1777     position: fixed;
    1778     left: 0;
    1779     right: 0;
    1780     bottom: 0;
    1781     height: 30px;
    1782     z-index: 100020;
    1783     background: #fff;
    1784     -webkit-transition: height 0.2s;
    1785     transition: height 0.2s;
    1786 }
    1787 
    1788 #wp-fullscreen-status {
    1789     margin: 0 auto;
    1790     padding: 0;
    1791 }
    1792 
    1793 .wp-fullscreen-active .wp-fullscreen-title,
    1794 .wp-fullscreen-active .wp-fullscreen-title:focus,
    1795 .wp-fullscreen-active .wp-editor-container {
    1796     -webkit-border-radius: 0;
    1797     border-radius: 0;
    1798     border: 1px dashed transparent;
    1799     background: transparent;
    1800     -webkit-box-shadow: none;
    1801     box-shadow: none;
    1802     -webkit-transition: border-color 0.4s;
    1803     transition: border-color 0.4s;
    1804 }
    1805 
    1806 .wp-fullscreen-active .wp-editor-container {
    1807     margin: 0 auto 40px;
    1808 }
    1809 
    1810 .wp-fullscreen-active .wp-fullscreen-title {
    1811     font-size: 1.7em;
    1812     line-height: 100%;
    1813     outline: medium none;
    1814     padding: 3px 7px;
    1815     margin: 10px auto 30px;
    1816     display: block;
    1817 }
    1818 
    1819 #wp-fullscreen-tagline {
    1820     color: #82878c;
    1821     font-size: 18px;
    1822     float: right;
    1823     padding: 4px 0 0;
    1824 }
    1825 
    1826 /* =Top bar
    1827 -------------------------------------------------------------- */
    1828 #fullscreen-topbar {
    1829     background: #f5f5f5;
    1830     border-bottom: 1px solid #dedede;
    1831     height: 45px;
    1832     position: fixed;
    1833     left: 0;
    1834     right: 0;
    1835     top: 0;
    1836     width: 100%;
    1837     z-index: 100020;
    1838     -webkit-transition: opacity 0.4s;
    1839     transition: opacity 0.4s;
    1840 }
    1841 
    1842 #wp-fullscreen-toolbar {
    1843     padding: 6px 10px 0;
    1844     clear: both;
    1845     max-width: 1100px;
    1846     margin: 0 auto;
    1847 }
    1848 
    1849 #wp-fullscreen-mode-bar,
    1850 #wp-fullscreen-button-bar,
    1851 #wp-fullscreen-close {
    1852     float: left;
    1853 }
    1854 
    1855 #wp-fullscreen-count,
    1856 #wp-fullscreen-tagline {
    1857     display: inline-block;
    1858 }
    1859 
    1860 #wp-fullscreen-button-bar {
    1861     margin-top: 2px;
    1862 }
    1863 
    1864 #wp-fullscreen-save {
    1865     float: right;
    1866     padding: 2px 0 0;
    1867     min-width: 95px;
    1868 }
    1869 
    1870 #wp-fullscreen-count,
    1871 #wp-fullscreen-close {
    1872     padding: 5px 0 0;
    1873 }
    1874 
    1875 #wp-fullscreen-central-toolbar {
    1876     margin: auto;
    1877     padding: 0;
    1878     min-width: 620px;
    1879 }
    1880 
    1881 #wp-fullscreen-buttons > div {
    1882     float: left;
    1883 }
    1884 
    1885 #wp-fullscreen-mode-bar {
    1886     padding: 3px 14px 0 0;
    1887 }
    1888 
    1889 #wp-fullscreen-buttons .hidden {
    1890     display: none;
    1891 }
    1892 
    1893 #wp-fullscreen-buttons .disabled {
    1894     opacity: 0.5;
    1895 }
    1896 
    1897 #wp-fullscreen-buttons .mce-btn button {
    1898     margin: 0;
    1899     outline: 0 none;
    1900     border: 0 none;
    1901     white-space: nowrap;
    1902     width: auto;
    1903     background: none;
    1904     color: #32373c;
    1905     cursor: pointer;
    1906     font-size: 18px;
    1907     line-height: 20px;
    1908     overflow: visible;
    1909     text-align: center;
    1910     -webkit-box-sizing: border-box;
    1911     -moz-box-sizing: border-box;
    1912     box-sizing: border-box;
    1913 }
    1914 
    1915 .wp-html-mode #wp-fullscreen-buttons div {
    1916     display: none;
    1917 }
    1918 
    1919 .wp-html-mode #wp-fullscreen-buttons div.wp-fullscreen-both {
    1920     display: block;
    1921 }
    1922 
    1923 #wp-fullscreen-save img {
    1924     vertical-align: middle;
    1925 }
    1926 
    1927 #wp-fullscreen-save span {
    1928     display: none;
    1929     margin: 5px 6px 0;
    1930     float: left;
    1931 }
    1932 
    1933 /* =Thickbox Adjustments
    1934 -------------------------------------------------------------- */
    1935 .wp-fullscreen-active #TB_overlay {
    1936     z-index: 100050;
    1937 }
    1938 
    1939 .wp-fullscreen-active #TB_window {
    1940     z-index: 100051;
    1941 }
    1942 
    1943 /* Colors */
    1944 .fullscreen-overlay {
    1945     background: #fff;
    1946 }
    1947 
    1948 /* =CSS 3 transitions
    1949 -------------------------------------------------------------- */
    1950 
    1951 .wp-fullscreen-active #fullscreen-topbar {
    1952     -webkit-transition-duration: 0.8s;
    1953     transition-duration: 0.8s;
    1954     opacity: 0;
    1955     filter: alpha(opacity=0);
    1956 }
    1957 
    1958 .wp-fullscreen-active #wp-fullscreen-statusbar {
    1959     height: 0;
    1960 }
    1961 
    1962 .wp-fullscreen-active.wp-dfw-show-ui #fullscreen-topbar {
    1963     -webkit-transition-duration: 0.4s;
    1964     transition-duration: 0.4s;
    1965     opacity: 1;
    1966     filter: alpha(opacity=100);
    1967 }
    1968 
    1969 .wp-fullscreen-active.wp-dfw-show-ui #wp-fullscreen-statusbar {
    1970     height: 29px;
    1971     background: #f8f8f8;
    1972     border-top: 1px solid #eee;
    1973 }
    1974 
    1975 .wp-fullscreen-active .wp-fullscreen-title,
    1976 .wp-fullscreen-active .wp-editor-container {
    1977     -webkit-transition-duration: 0.8s;
    1978     transition-duration: 0.8s;
    1979     border-color: transparent;
    1980 }
    1981 
    1982 .wp-fullscreen-active.wp-dfw-show-ui .wp-fullscreen-title,
    1983 .wp-fullscreen-active.wp-dfw-show-ui .wp-editor-container {
    1984     -webkit-transition-duration: 0.4s;
    1985     transition-duration: 0.4s;
    1986     border-color: #ccc;
    1987 }
    1988 
    1989 .fade-1000,
    1990 .fade-600,
    1991 .fade-400,
    1992 .fade-300 {
    1993     opacity: 0;
    1994     -webkit-transition-property: opacity;
    1995     transition-property: opacity;
    1996 }
    1997 
    1998 .fade-1000 {
    1999     -webkit-transition-duration: 1s;
    2000     transition-duration: 1s;
    2001 }
    2002 
    2003 .fade-600 {
    2004     -webkit-transition-duration: 0.6s;
    2005     transition-duration: 0.6s;
    2006 }
    2007 
    2008 .fade-400 {
    2009     -webkit-transition-duration: 0.4s;
    2010     transition-duration: 0.4s;
    2011 }
    2012 
    2013 .fade-300 {
    2014     -webkit-transition-duration: 0.3s;
    2015     transition-duration: 0.3s;
    2016 }
    2017 
    2018 .fade-trigger {
    2019     opacity: 1;
    2020 }
    2021 
    2022 /* DFW on touch screen devices */
    2023 .wp-dfw-touch #fullscreen-topbar {
    2024     position: absolute;
    2025     opacity: 1;
    2026 }
    2027 
    2028 .wp-dfw-touch .wp-fullscreen-wrap .wp-editor-container,
    2029 .wp-dfw-touch .wp-fullscreen-title {
    2030     max-width: 700px;
    2031 }
    2032 
    2033 .wp-fullscreen-active.wp-dfw-touch  .wp-fullscreen-title,
    2034 .wp-fullscreen-active.wp-dfw-touch .wp-editor-container {
    2035     border-color: #ccc;
    2036 }
    2037 
    2038 .wp-dfw-touch #wp-fullscreen-statusbar {
    2039     height: 30px;
    2040 }
    2041 
    2042 @media screen and ( max-width: 782px ) {
    2043     #wp-fullscreen-close,
    2044     #wp-fullscreen-central-toolbar,
    2045     #wp-fullscreen-mode-bar,
    2046     #wp-fullscreen-button-bar,
    2047     #wp-fullscreen-save {
    2048         display: inline-block;
    2049     }
    2050 
    2051     #fullscreen-topbar {
    2052         height: 85px;
    2053     }
    2054 
    2055     #wp-fullscreen-central-toolbar {
    2056         width: auto !important;
    2057         min-width: 0;
    2058     }
    2059 
    2060     #wp-fullscreen-close {
    2061         line-height: 30px;
    2062         vertical-align: top;
    2063         padding: 0 12px;
    2064     }
    2065 
    2066     #wp-fullscreen-button-bar {
    2067         position: absolute;
    2068         top: 45px;
    2069         left: 0;
    2070     }
    2071 
    2072     .wp-fullscreen-wrap {
    2073         top: 95px;
    2074     }
    2075 
    2076     #wp-fullscreen-save {
    2077         position: absolute;
    2078         right: 10px;
    2079     }
    2080 }
    2081 
    2082 @media screen and ( max-width: 480px ) {
    2083     #wp_fs_help {
    2084         display: none;
    2085     }
    2086 
    2087     .wp-fullscreen-wrap .wp-editor-container,
    2088     .wp-fullscreen-title {
    2089         width: 480px !important;
    2090     }
    2091 
    2092     body.wp-fullscreen-active {
    2093         width: 480px;
    2094         overflow: auto;
    2095     }
    2096 
    2097     #fullscreen-topbar,
    2098     .wp-fullscreen-wrap {
    2099         width: 480px;
    2100     }
    2101 
    2102     #fullscreen-topbar {
    2103         position: absolute;
    2104     }
    2105 
    2106     #wp-fullscreen-status {
    2107         width: auto !important;
    2108         max-width: 100%;
    2109         padding: 0 10px;
    2110     }
    21111607}
    21121608
     
    21371633  (-webkit-min-device-pixel-ratio: 1.25),
    21381634  (min-resolution: 120dpi) {
    2139     .wp-media-buttons .add_media span.wp-media-buttons-icon,
    2140     #wp-fullscreen-buttons #wp_fs_image span.mce_image {
     1635    .wp-media-buttons .add_media span.wp-media-buttons-icon {
    21411636        background: none;
    21421637    }
  • trunk/src/wp-includes/css/media-views.css

    r32508 r32677  
    20432043
    20442044/* Drag & drop on the editor upload */
    2045 #wp-fullscreen-body .uploader-editor,
    20462045.wp-editor-wrap .uploader-editor {
    20472046    background: rgba( 150, 150, 150, 0.9 );
     
    20562055}
    20572056
    2058 #wp-fullscreen-body .uploader-editor {
    2059     background: rgba( 0, 86, 132, 0.9 );
    2060     position: fixed;
    2061     z-index: 100050; /* above the editor toolbar */
    2062 }
    2063 
    2064 .wp-editor-wrap.wp-fullscreen-wrap .uploader-editor {
    2065     opacity: 0;
    2066 }
    2067 
    2068 #wp-fullscreen-body .uploader-editor-content,
    20692057.wp-editor-wrap .uploader-editor-content {
    20702058    border: 1px dashed #fff;
     
    20762064}
    20772065
    2078 #wp-fullscreen-body .uploader-editor .uploader-editor-title,
    20792066.wp-editor-wrap .uploader-editor .uploader-editor-title {
    20802067    position: absolute;
     
    20982085}
    20992086
    2100 #wp-fullscreen-body .uploader-editor .uploader-editor-title,
    21012087.wp-editor-wrap .uploader-editor.droppable .uploader-editor-title {
    21022088    display: block;
  • trunk/src/wp-includes/js/media/views/uploader/editor.js

    r31935 r32677  
    22
    33/**
    4  * Creates a dropzone on WP editor instances (elements with .wp-editor-wrap
    5  * or #wp-fullscreen-body) and relays drag'n'dropped files to a media workflow.
     4 * Creates a dropzone on WP editor instances (elements with .wp-editor-wrap)
     5 * and relays drag'n'dropped files to a media workflow.
    66 *
    77 * wp.media.view.EditorUploader
     
    110110
    111111        View.prototype.render.apply( this, arguments );
    112         $( '.wp-editor-wrap, #wp-fullscreen-body' ).each( _.bind( this.attach, this ) );
     112        $( '.wp-editor-wrap' ).each( _.bind( this.attach, this ) );
    113113        return this;
    114114    },
  • trunk/src/wp-includes/js/quicktags.js

    r30573 r32677  
    282282                    }
    283283                }
    284             }
    285 
    286             if ( use && use.indexOf(',fullscreen,') !== -1 ) {
    287                 theButtons.fullscreen = new qt.FullscreenButton();
    288                 html += theButtons.fullscreen.html(name + '_');
    289284            }
    290285
     
    624619    };
    625620
    626     qt.FullscreenButton = function() {
    627         qt.Button.call(this, 'fullscreen', quicktagsL10n.fullscreen, 'f', quicktagsL10n.toggleFullscreen);
    628     };
    629     qt.FullscreenButton.prototype = new qt.Button();
    630     qt.FullscreenButton.prototype.callback = function(e, c) {
    631         if ( ! c.id || typeof wp === 'undefined' || ! wp.editor || ! wp.editor.fullscreen ) {
    632             return;
    633         }
    634 
    635         wp.editor.fullscreen.on();
    636     };
    637 
    638621    qt.DFWButton = function() {
    639622        qt.Button.call( this, 'dfw', '', 'f', quicktagsL10n.dfw );
  • trunk/src/wp-includes/js/tinymce/skins/wordpress/wp-content.css

    r31822 r32677  
    7070    -webkit-box-shadow: none !important;
    7171    box-shadow: none !important;
    72 }
    73 
    74 /* DFW mode */
    75 html.wp-fullscreen,
    76 html.wp-fullscreen body#tinymce {
    77     width: auto;
    78     max-width: none;
    79     min-height: 0;
    80     overflow: hidden;
    81     color: #333;
    82     background: transparent;
    8372}
    8473
  • trunk/src/wp-includes/script-loader.php

    r32676 r32677  
    9595        'enterImageURL'         => __( 'Enter the URL of the image' ),
    9696        'enterImageDescription' => __( 'Enter a description of the image' ),
    97         'fullscreen'            => __( 'fullscreen' ),
    98         'toggleFullscreen'      => esc_attr__( 'Toggle fullscreen mode' ),
    9997        'textdirection'         => esc_attr__( 'text direction' ),
    10098        'toggleTextdirection'   => esc_attr__( 'Toggle Editor Text Direction' ),
     
    106104    $scripts->add( 'editor', "/wp-admin/js/editor$suffix.js", array('utils','jquery'), false, 1 );
    107105
    108     $scripts->add( 'wp-fullscreen', "/wp-admin/js/wp-fullscreen$suffix.js", array('jquery'), false, 1 );
     106    // Back-compat for old DFW. To-do: remove at the end of 2016.
     107    $scripts->add( 'wp-fullscreen-stub', "/wp-admin/js/wp-fullscreen-stub$suffix.js", array(), false, 1 );
    109108
    110109    $scripts->add( 'wp-ajax-response', "/wp-includes/js/wp-ajax-response$suffix.js", array('jquery'), false, 1 );
Note: See TracChangeset for help on using the changeset viewer.