Index: typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js (révision 7668) +++ typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js (copie de travail) @@ -1707,7 +1707,13 @@ var range = this._createRange(selection); if (HTMLArea.is_gecko) { var parentStart = range.startContainer; + if (/^(body)$/i.test(parentStart.nodeName)) { + parentStart = parentStart.firstChild; + } var parentEnd = range.endContainer; + if (/^(body)$/i.test(parentEnd.nodeName)) { + parentEnd = parentEnd.lastChild; + } } else { if (selection.type !== "Control" ) { var rangeEnd = range.duplicate(); Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js (révision 7668) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js (copie de travail) @@ -607,32 +607,34 @@ if (endBlocks.start === endBlocks.end) { --index; } - for (var block = startAncestors[index]; block; block = block.nextSibling) { - if (HTMLArea.isBlockElement(block)) { - switch (buttonId) { - case "Indent" : - if (!HTMLArea._hasClass(block, this.useClass[buttonId])) { - HTMLArea._addClass(block, this.useClass[buttonId]); - } - break; - case "Outdent" : - if (HTMLArea._hasClass(block, this.useClass["Indent"])) { - HTMLArea._removeClass(block, this.useClass["Indent"]); - } - break; - case "JustifyLeft" : - case "JustifyCenter" : - case "JustifyRight" : - case "JustifyFull" : - this.toggleAlignmentClass(block, buttonId); - break; - default : - break; + if (!/^(body)$/i.test(startAncestors[index].nodeName)) { + for (var block = startAncestors[index]; block; block = block.nextSibling) { + if (HTMLArea.isBlockElement(block)) { + switch (buttonId) { + case "Indent" : + if (!HTMLArea._hasClass(block, this.useClass[buttonId])) { + HTMLArea._addClass(block, this.useClass[buttonId]); + } + break; + case "Outdent" : + if (HTMLArea._hasClass(block, this.useClass["Indent"])) { + HTMLArea._removeClass(block, this.useClass["Indent"]); + } + break; + case "JustifyLeft" : + case "JustifyCenter" : + case "JustifyRight" : + case "JustifyFull" : + this.toggleAlignmentClass(block, buttonId); + break; + default : + break; + } } + if (block == endAncestors[index]) { + break; + } } - if (block == endAncestors[index]) { - break; - } } },