diff --git a/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js b/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js index 50db0d984a..3f4ca1036e 100644 --- a/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js +++ b/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js @@ -364,7 +364,6 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) { } } } else if ( cmd === 'JustifyLeft' || cmd === 'JustifyRight' || cmd === 'JustifyCenter' ) { - // When inside an image caption, set the align* class on dt.wp-caption node = editor.selection.getNode(); align = cmd.substr(7).toLowerCase(); align = 'align' + align; @@ -376,6 +375,7 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) { } if ( DL ) { + // When inside an image caption, set the align* class on dl.wp-caption if ( dom.hasClass( DL, align ) ) { dom.removeClass( DL, align ); dom.addClass( DL, 'alignnone' ); @@ -386,6 +386,15 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) { return false; } + + if ( node.nodeName === 'IMG' ) { + if ( dom.hasClass( node, align ) ) { + // The align class is being removed + dom.addClass( node, 'alignnone' ); + } else { + dom.removeClass( node, 'alignnone' ); + } + } } }); diff --git a/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js b/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js index 27230741ca..075087a9ad 100644 --- a/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js @@ -1 +1 @@ -tinymce.PluginManager.add("wpeditimage",function(a){function b(a){return a.replace(/(?:
)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g,function(a,b,c){var d,e,f,g,h,i,j=tinymce.trim;return d=b.match(/id=['"]([^'"]*)['"] ?/),d&&(b=b.replace(d[0],"")),e=b.match(/align=['"]([^'"]*)['"] ?/),e&&(b=b.replace(e[0],"")),f=b.match(/width=['"]([0-9]*)['"] ?/),f&&(b=b.replace(f[0],"")),c=j(c),h=c.match(/((?:]+>)? "+c[1]+" [\s\S]*<\/p>)?[\s\S]*/gi," $1 /,"").replace(/<\/p>$/,"")))}),b.bind(a.getDoc(),"dragstart",function(c){var d=a.selection.getNode();"IMG"===d.nodeName&&b.getParent(d,".wp-caption")&&c.preventDefault()})}),a.on("ObjectResized",function(b){var c,d=b.target;"IMG"===d.nodeName&&(c=a.dom.getParent(d,".wp-caption"))&&a.dom.setStyle(c,"width",10+b.width+"px")}),a.on("BeforeExecCommand",function(b){var c,d,e,f,g=b.command,h=a.dom;if("mceInsertContent"===g){if((c=h.getParent(a.selection.getNode(),"div.mceTemp"))&&(d=h.create("p"),h.insertAfter(d,c),a.selection.setCursorLocation(d,0),a.nodeChanged(),tinymce.Env.ie>8))return setTimeout(function(){a.selection.setCursorLocation(d,0),a.selection.setContent(b.value)},500),!1}else if(("JustifyLeft"===g||"JustifyRight"===g||"JustifyCenter"===g)&&(c=a.selection.getNode(),f=g.substr(7).toLowerCase(),f="align"+f,e=h.is(c,"dl.wp-caption")?c:h.getParent(c,"dl.wp-caption")))return h.hasClass(e,f)?(h.removeClass(e,f),h.addClass(e,"alignnone")):(e.className=e.className.replace(/align[^ ]+/g,""),h.addClass(e,f)),!1}),a.on("keydown",function(b){var c,d,e,f,g=a.selection,h=a.dom;if(b.keyCode===tinymce.util.VK.ENTER)d=h.getParent(a.selection.getNode(),"div.mceTemp"),d&&(h.events.cancel(b),tinymce.each(h.select("dt, dd",d),function(a){h.isEmpty(a)&&h.remove(a)}),f=tinymce.Env.ie?"":' )?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g,function(a,b,c){var d,e,f,g,h,i,j=tinymce.trim;return d=b.match(/id=['"]([^'"]*)['"] ?/),d&&(b=b.replace(d[0],"")),e=b.match(/align=['"]([^'"]*)['"] ?/),e&&(b=b.replace(e[0],"")),f=b.match(/width=['"]([0-9]*)['"] ?/),f&&(b=b.replace(f[0],"")),c=j(c),h=c.match(/((?:]+>)? "+c[1]+"]+>(?:<\/a>)?)([\s\S]*)/i),h&&h[2]?(g=j(h[2]),h=j(h[1])):(g=j(b).replace(/caption=['"]/,"").replace(/['"]$/,""),h=c),d=d&&d[1]?d[1]:"",e=e&&e[1]?e[1]:"alignnone",f=f&&f[1]?f[1]:"",f&&g?(i=parseInt(f,10)+10,'
'+'
]+>([\s\S]+?)<\/dd>/i),c&&c[1]?"
]+)>\s*
"),'[caption id="'+e+'" align="'+f+'" width="'+g+'"]'+c+" "+d+"[/caption]"):c}),0!==c.indexOf("[caption")&&(c=b.replace(/[\s\S]*?((?:]+>)?]+>(?:<\/a>)?)(
]*>)\s*\n\s*/g,"$1").replace(/\s*\n\s*/g,"
")),j?(h=j.id||null,b.setAttribs(j,i),d=b.getParent(j,"dl.wp-caption"),k?d?(e=b.select("dd.wp-caption-dd",d)[0])&&(e.innerHTML=k):(j.className&&(l=j.className.match(/wp-image-([0-9]+)/),m=j.className.match(/align(left|right|center|none)/)),m?(m=m[0],j.className=j.className.replace(/align(left|right|center|none)/g,"")):m="alignnone",m=' class="wp-caption '+m+'"',l&&(l=' id="attachment_'+l[1]+'"'),n=i.width||j.clientWidth,n&&(n=parseInt(n,10)+10,n=' style="width: '+n+'px"'),j.parentNode&&"A"===j.parentNode.nodeName?(g=b.getOuterHTML(j.parentNode),f=j.parentNode):(g=b.getOuterHTML(j),f=j),g=""+'
",(e=b.getParent(j,"p"))?(d=b.create("div",{"class":"mceTemp",draggable:"true"},g),b.insertAfter(d,e),a.selection.select(d),a.nodeChanged(),b.remove(f),b.isEmpty(e)&&b.remove(e)):a.selection.setContent('"+'
",e="P"===f.nodeName?f:b.getParent(f,"p"),e&&"P"===e.nodeName?(d=b.create("div",{"class":"mceTemp",draggable:"true"},g),b.insertAfter(d,e),a.selection.select(d),a.nodeChanged(),b.isEmpty(e)&&b.remove(e)):a.selection.setContent('
]*>/g,"$&\n").replace(/^
',e=h.create("p",null,f),h.insertAfter(e,d),g.setCursorLocation(e,0),a.nodeChanged());else if((b.keyCode===tinymce.util.VK.DELETE||b.keyCode===tinymce.util.VK.BACKSPACE)&&(c=g.getNode(),"DIV"===c.nodeName&&h.hasClass(c,"mceTemp")?d=c:("IMG"===c.nodeName||"DT"===c.nodeName||"A"===c.nodeName)&&(d=h.getParent(c,"div.mceTemp")),d))return h.events.cancel(b),d.nextSibling?g.select(d.nextSibling):d.previousSibling?g.select(d.previousSibling):g.select(d.parentNode),g.collapse(!0),a.nodeChanged(),h.remove(d),d=null,!1}),a.wpSetImgCaption=function(a){return b(a)},a.wpGetImgCaption=function(a){return c(a)},a.on("BeforeSetContent",function(b){b.content=a.wpSetImgCaption(b.content)}),a.on("PostProcess",function(b){b.get&&(b.content=a.wpGetImgCaption(b.content))}),{_do_shcode:b,_get_shcode:c}});
\ No newline at end of file
+tinymce.PluginManager.add("wpeditimage",function(a){function b(a){return a.replace(/(?:]+>(?:<\/a>)?)([\s\S]*)/i),h&&h[2]?(g=j(h[2]),h=j(h[1])):(g=j(b).replace(/caption=['"]/,"").replace(/['"]$/,""),h=c),d=d&&d[1]?d[1]:"",e=e&&e[1]?e[1]:"alignnone",f=f&&f[1]?f[1]:"",f&&g?(i=parseInt(f,10)+10,'
'+'
]+>([\s\S]+?)<\/dd>/i),c&&c[1]?"