diff --git a/src/wp-admin/js/wp-fullscreen.js b/src/wp-admin/js/wp-fullscreen.js index a00940cd66..de73060ae5 100644 --- a/src/wp-admin/js/wp-fullscreen.js +++ b/src/wp-admin/js/wp-fullscreen.js @@ -510,10 +510,11 @@ } }); - $( window ).on( 'keyup', function( event ) { + $( window ).on( 'keydown.wp-fullscreen', function( event ) { // Turn fullscreen off when Esc is pressed. if ( 27 === event.keyCode && s.visible ) { api.off(); + event.stopImmediatePropagation(); } }); diff --git a/src/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js b/src/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js index 52f981198a..8119a21736 100644 --- a/src/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js +++ b/src/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js @@ -63,27 +63,33 @@ tinymce.PluginManager.add( 'wpfullscreen', function( editor ) { editor.addCommand( 'wpFullScreenOn', fullscreenOn ); editor.addCommand( 'wpFullScreenOff', fullscreenOff ); - function toggleFullscreen() { - // Toggle DFW mode. For use from inside the editor. - if ( typeof wp === 'undefined' || ! wp.editor || ! wp.editor.fullscreen ) { - return; - } + function getExtAPI() { + return ( typeof wp !== 'undefined' && wp.editor && wp.editor.fullscreen ); + } - if ( editor.getParam('wp_fullscreen') ) { - wp.editor.fullscreen.off(); - } else { - wp.editor.fullscreen.on(); + // Toggle DFW mode. For use from inside the editor. + function toggleFullscreen() { + var fullscreen = getExtAPI(); + + if ( fullscreen ) { + if ( editor.getParam('wp_fullscreen') ) { + fullscreen.off(); + } else { + fullscreen.on(); + } } } editor.addCommand( 'wpFullScreen', toggleFullscreen ); - editor.on( 'keyup', function( event ) { + editor.on( 'keydown', function( event ) { + var fullscreen; + // Turn fullscreen off when Esc is pressed. - if ( event.keyCode === 27 && wp.editor.fullscreen.settings.visible ) { - wp.editor.fullscreen.off(); + if ( event.keyCode === 27 && ( fullscreen = getExtAPI() ) && fullscreen.settings.visible ) { + fullscreen.off(); } - } ); + }); editor.on( 'init', function() { // Set the editor when initializing from whitin DFW