Index: wp-includes/js/tinymce/plugins/wplink/js/wplink.dev.js =================================================================== --- wp-includes/js/tinymce/plugins/wplink/js/wplink.dev.js (revision 17732) +++ wp-includes/js/tinymce/plugins/wplink/js/wplink.dev.js (working copy) @@ -9,7 +9,7 @@ riverBottomThreshold: 5, keySensitivity: 100, lastSearch: '', - textarea: edCanvas, + textarea: function() { return edCanvas; }, init : function() { inputs.dialog = $('#wp-link'); @@ -49,7 +49,7 @@ wpLink.range = null; if ( ! wpLink.isMCE() && document.selection ) { - wpLink.textarea.focus(); + wpLink.textarea().focus(); wpLink.range = document.selection.createRange(); } }, @@ -127,7 +127,7 @@ onClose: function() { if ( ! wpLink.isMCE() ) { - wpLink.textarea.focus(); + wpLink.textarea().focus(); if ( wpLink.range ) { wpLink.range.moveToBookmark( wpLink.range.getBookmark() ); wpLink.range.select(); @@ -152,7 +152,7 @@ htmlUpdate : function() { var attrs, html, start, end, cursor, - textarea = wpLink.textarea; + textarea = wpLink.textarea(); if ( ! textarea ) return; Index: wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.js =================================================================== --- wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.js (revision 17732) +++ wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.js (working copy) @@ -1 +1 @@ -(function(){tinymce.create("tinymce.plugins.wpFullscreenPlugin",{init:function(a,c){var d=this,g=0,e={},f=tinymce.DOM;a.addCommand("wpFullScreenClose",function(){if(a.getParam("wp_fullscreen_is_enabled")){f.win.setTimeout(function(){tinyMCE.remove(a);f.remove("wp_mce_fullscreen_parent");tinyMCE.settings=tinyMCE.oldSettings},10)}});a.addCommand("wpFullScreenSave",function(){var h=tinyMCE.get("wp_mce_fullscreen"),i;h.focus();i=tinyMCE.get(h.getParam("wp_fullscreen_editor_id"));i.setContent(h.getContent({format:"raw"}),{format:"raw"})});a.addCommand("wpFullScreenSaveContent",function(){a.execCommand("wpFullScreenSave");tinyMCE.triggerSave()});a.addCommand("wpFullScreenOpen",function(){var i=a.getDoc(),h=i.body;tinyMCE.oldSettings=tinyMCE.settings;tinymce.each(a.settings,function(j,k){e[k]=j});e.id="wp_mce_fullscreen";e.wp_fullscreen_is_enabled=true;e.wp_fullscreen_editor_id=a.id;e.theme_advanced_resizing=false;e.theme_advanced_toolbar_location="external";e.theme_advanced_statusbar_location="none";e.content_css=e.wp_fullscreen_content_css||"";e.height=tinymce.isIE?h.scrollHeight:h.offsetHeight;e.save_onsavecallback=function(){a.setContent(tinyMCE.get(e.id).getContent({format:"raw"}),{format:"raw"});a.execCommand("mceSave")};tinymce.each(a.getParam("wp_fullscreen_settings"),function(l,j){e[j]=l});d.fullscreenEditor=new tinymce.Editor("wp_mce_fullscreen",e);d.fullscreenEditor.onInit.add(function(){d.fullscreenEditor.setContent(a.getContent());d.fullscreenEditor.focus()});fullscreen.on();d.fullscreenEditor.render()});a.addButton("fullscreen",{title:"fullscreen.desc",cmd:"wpFullScreenOpen"});if(a.getParam("fullscreen_is_enabled")||!a.getParam("wp_fullscreen_is_enabled")){return}function b(){var k=a.getDoc(),h=k.body,m=k.documentElement,j=tinymce.DOM,l,i;if(tinymce.isIE){i=h.scrollHeight}else{if(tinymce.isWebKit){i=h.offsetHeight}else{i=m.offsetHeight}}l=(i>300)?i:300;if(g!=l){g=l;j.setStyle(j.get(a.id+"_ifr"),"height",l+"px")}}a.onInit.add(function(i,h){i.onChange.add(b);i.onSetContent.add(b);i.onPaste.add(b);i.onKeyUp.add(b);i.onPostRender.add(b);i.getBody().style.overflowY="hidden";i.dom.setStyle(i.getBody(),"paddingBottom",i.getParam("autoresize_bottom_margin",50)+"px")});if(a.getParam("autoresize_on_init",true)){a.onLoadContent.add(function(i,h){setTimeout(function(){b()},1200)})}a.addCommand("mceAutoResize",b)},getInfo:function(){return{longname:"WP Fullscreen",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wpfullscreen",tinymce.plugins.wpFullscreenPlugin)})(); \ No newline at end of file +(function(){tinymce.create("tinymce.plugins.wpFullscreenPlugin",{init:function(a,c){var d=this,g=0,e={},f=tinymce.DOM;a.addCommand("wpFullScreenClose",function(){if(a.getParam("wp_fullscreen_is_enabled")){f.win.setTimeout(function(){tinyMCE.remove(a);f.remove("wp_mce_fullscreen_parent");tinyMCE.settings=tinyMCE.oldSettings;tinyMCE.activeEditor.execCommand("wpFullScreenClosed")},10)}});a.addCommand("wpFullScreenClosed",function(){d.fullscreenEditor=null});a.addCommand("wpFullScreenSave",function(){var h=tinyMCE.get("wp_mce_fullscreen"),i;h.focus();i=tinyMCE.get(h.getParam("wp_fullscreen_editor_id"));i.setContent(h.getContent({format:"raw"}),{format:"raw"})});a.addCommand("wpFullScreenSaveContent",function(){a.execCommand("wpFullScreenSave");tinyMCE.triggerSave()});a.addCommand("wpFullScreenInit",function(){if(d.fullscreenEditor||a.id=="wp_mce_fullscreen"){return}var i=a.getDoc(),h=i.body;tinyMCE.oldSettings=tinyMCE.settings;tinymce.each(a.settings,function(j,k){e[k]=j});e.id="wp_mce_fullscreen";e.wp_fullscreen_is_enabled=true;e.wp_fullscreen_editor_id=a.id;e.theme_advanced_resizing=false;e.theme_advanced_toolbar_location="external";e.theme_advanced_statusbar_location="none";e.content_css=e.wp_fullscreen_content_css||"";e.height=tinymce.isIE?h.scrollHeight:h.offsetHeight;e.save_onsavecallback=function(){a.setContent(tinyMCE.get(e.id).getContent({format:"raw"}),{format:"raw"});a.execCommand("mceSave")};tinymce.each(a.getParam("wp_fullscreen_settings"),function(l,j){e[j]=l});d.fullscreenEditor=new tinymce.Editor("wp_mce_fullscreen",e);d.fullscreenEditor.onInit.add(function(){if(!fullscreen.visible&&fullscreen.mode()==="tinymce"){d.fullscreenEditor.setContent(a.getContent());d.fullscreenEditor.focus()}});d.fullscreenEditor.render()});a.addCommand("wpFullScreenOpen",function(){fullscreen.on("tinymce")});a.onInit.add(function(){if(!fullscreen.visible){return}if(a.id==="wp_mce_fullscreen"){fullscreen.mode("tinymce")}else{a.execCommand("wpFullScreenInit")}});if(a.id=="wp_mce_fullscreen"){setTimeout(function(){a.onNodeChange.add(function(j,h,k,i){tinymce.each(fullscreen.tinymce.commands,function(l,n){var o=h.get(n),m=fullscreen.Button(n);if(o){m.disabled(!!o.disabled);m.active(!!o.active)}})})},100)}a.addButton("fullscreen",{title:"fullscreen.desc",cmd:"wpFullScreenOpen"});if(a.getParam("fullscreen_is_enabled")||!a.getParam("wp_fullscreen_is_enabled")){return}function b(){var k=a.getDoc(),h=k.body,m=k.documentElement,j=tinymce.DOM,l,i;if(tinymce.isIE){i=h.scrollHeight}else{if(tinymce.isWebKit){i=h.offsetHeight}else{i=m.offsetHeight}}l=(i>300)?i:300;if(g!=l){g=l;j.setStyle(j.get(a.id+"_ifr"),"height",l+"px")}}a.onInit.add(function(i,h){i.onChange.add(b);i.onSetContent.add(b);i.onPaste.add(b);i.onKeyUp.add(b);i.onPostRender.add(b);i.getBody().style.overflowY="hidden";i.dom.setStyle(i.getBody(),"paddingBottom",i.getParam("autoresize_bottom_margin",50)+"px")});if(a.getParam("autoresize_on_init",true)){a.onLoadContent.add(function(i,h){setTimeout(function(){b()},1200)})}a.addCommand("mceAutoResize",b)},getInfo:function(){return{longname:"WP Fullscreen",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wpfullscreen",tinymce.plugins.wpFullscreenPlugin)})(); \ No newline at end of file Index: wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.dev.js =================================================================== --- wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.dev.js (revision 17732) +++ wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.dev.js (working copy) @@ -18,10 +18,15 @@ tinyMCE.remove(ed); DOM.remove('wp_mce_fullscreen_parent'); tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings + tinyMCE.activeEditor.execCommand('wpFullScreenClosed'); }, 10); } }); - + + ed.addCommand('wpFullScreenClosed', function() { + t.fullscreenEditor = null; + }); + ed.addCommand('wpFullScreenSave', function() { var ed = tinyMCE.get('wp_mce_fullscreen'), edd; @@ -30,13 +35,17 @@ edd.setContent( ed.getContent({format : 'raw'}), {format : 'raw'} ); }); - + ed.addCommand('wpFullScreenSaveContent', function() { ed.execCommand('wpFullScreenSave'); tinyMCE.triggerSave(); }); - - ed.addCommand('wpFullScreenOpen', function() { + + ed.addCommand('wpFullScreenInit', function() { + // Only init the editor if necessary. + if ( t.fullscreenEditor || ed.id == 'wp_mce_fullscreen' ) + return; + var d = ed.getDoc(), b = d.body; tinyMCE.oldSettings = tinyMCE.settings; // Store old settings @@ -64,17 +73,51 @@ t.fullscreenEditor = new tinymce.Editor('wp_mce_fullscreen', s); t.fullscreenEditor.onInit.add(function() { - t.fullscreenEditor.setContent(ed.getContent()); - t.fullscreenEditor.focus(); + if ( ! fullscreen.visible && fullscreen.mode() === 'tinymce' ) { + t.fullscreenEditor.setContent( ed.getContent() ); + t.fullscreenEditor.focus(); + } }); - fullscreen.on(); t.fullscreenEditor.render(); }); + ed.addCommand('wpFullScreenOpen', function() { + fullscreen.on('tinymce'); + }); + + ed.onInit.add( function() { + if ( ! fullscreen.visible ) + return; + + if ( ed.id === 'wp_mce_fullscreen' ) + fullscreen.mode('tinymce'); + else + ed.execCommand('wpFullScreenInit'); + }); + + if ( ed.id == 'wp_mce_fullscreen' ) { + // Ensure event is bound after theme events. + setTimeout( function() { + // Keep external buttons in sync with tinymce buttons + ed.onNodeChange.add( function( edi, cm, n, co ) { + tinymce.each( fullscreen.tinymce.commands, function( v, key ) { + var control = cm.get( key ), + button = fullscreen.Button( key ); + + if ( control ) { + button.disabled( !! control.disabled ); + button.active( !! control.active ); + } + }); + }); + }, 100 ); + } + // Register buttons ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'wpFullScreenOpen'}); + // END fullscreen //---------------------------------------------------------------- // START autoresize Index: wp-includes/js/quicktags.dev.js =================================================================== --- wp-includes/js/quicktags.dev.js (revision 17732) +++ wp-includes/js/quicktags.dev.js (working copy) @@ -259,6 +259,7 @@ } document.write(''); document.write(''); + document.write(''); // edShowLinks(); // disabled by default document.write(''); } Index: wp-includes/script-loader.php =================================================================== --- wp-includes/script-loader.php (revision 17732) +++ wp-includes/script-loader.php (working copy) @@ -86,6 +86,8 @@ 'enterURL' => __('Enter the URL'), 'enterImageURL' => __('Enter the URL of the image'), 'enterImageDescription' => __('Enter a description of the image'), + 'fullscreen' => __('fullscreen'), + 'toggleFullscreen' => esc_attr( __('Toggle fullscreen mode') ), 'l10n_print_after' => 'try{convertEntities(quicktagsL10n);}catch(e){};' ) ); @@ -93,9 +95,21 @@ $scripts->add( 'editor', "/wp-admin/js/editor$suffix.js", array('utils','jquery'), '20110411' ); $scripts->add_data( 'editor', 'group', 1 ); - - $scripts->add( 'wp-fullscreen', "/wp-admin/js/wp-fullscreen$suffix.js", array('jquery'), '20110425a' ); + + $scripts->add( 'wp-fullscreen', "/wp-admin/js/wp-fullscreen$suffix.js", array('jquery'), '20110428' ); $scripts->add_data( 'wp-fullscreen', 'group', 1 ); + $scripts->localize( 'wp-fullscreen', 'fullscreenL10n', array( + 'bold' => __('Bold (Ctrl + B)'), + 'italic' => __('Italic (Ctrl + I)'), + 'bullist' => __('Unordered list (Alt + Shift + U)'), + 'numlist' => __('Ordered list (Alt + Shift + O)'), + 'image' => __('Insert/edit image (Alt + Shift + M)'), + 'link' => __('Insert/edit link (Alt + Shift + A)'), + 'unlink' => __('Unlink (Alt + Shift + S)'), + 'html' => __('HTML'), + 'visual' => __('Visual'), + 'l10n_print_after' => 'try{convertEntities(fullscreenL10n);}catch(e){};', + ) ); $scripts->add( 'prototype', '/wp-includes/js/prototype.js', false, '1.6.1'); @@ -271,7 +285,7 @@ $scripts->add( 'admin-bar', "/wp-includes/js/admin-bar$suffix.js", false, '20110131' ); $scripts->add_data( 'admin-bar', 'group', 1 ); - $scripts->add( 'wplink', "/wp-includes/js/tinymce/plugins/wplink/js/wplink$suffix.js", array( 'jquery', 'wpdialogs' ), '20110421' ); + $scripts->add( 'wplink', "/wp-includes/js/tinymce/plugins/wplink/js/wplink$suffix.js", array( 'jquery', 'wpdialogs' ), '20110428' ); $scripts->add_data( 'wplink', 'group', 1 ); $scripts->localize( 'wplink', 'wpLinkL10n', array( 'title' => __('Insert/edit link'), Index: wp-admin/includes/post.php =================================================================== --- wp-admin/includes/post.php (revision 17732) +++ wp-admin/includes/post.php (working copy) @@ -1725,80 +1725,33 @@ $width = isset($content_width) && 800 > $content_width ? $content_width : 800; $width = $width + 10; // compensate for the padding $save = $post->post_status == 'publish' ? __('Update') : __('Save'); -?> +?>