Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js (révision 7841) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js (copie de travail) @@ -1106,8 +1106,39 @@ break; default : break; - } + } else { + // The selection is not contained in any block + switch (button.itemId) { + case 'FormatBlock': + this.updateDropDown(button); + break; + case 'Outdent' : + button.setDisabled(true); + break; + case 'Indent' : + break; + case 'InsertParagraphBefore' : + case 'InsertParagraphAfter' : + button.setDisabled(true); + break; + case 'Blockquote' : + button.setInactive(true); + break; + case 'JustifyLeft' : + case 'JustifyCenter' : + case 'JustifyRight' : + case 'JustifyFull' : + button.setInactive(true); + button.setDisabled(true); + break; + case 'InsertOrderedList': + case 'InsertUnorderedList': + button.setInactive(true); + break; + default : + break; + } } } }, Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/DefinitionList/definition-list.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/DefinitionList/definition-list.js (révision 7841) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/DefinitionList/definition-list.js (copie de travail) @@ -335,6 +335,12 @@ && !(endBlocks.start != endBlocks.end && /^(p|h[1-6])$/i.test(endBlocks.start.nodeName))); break; } + } else { + switch (button.itemId) { + case 'Outdent': + this.base(button, mode, selectionEmpty, ancestors); + break; + } } } } Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/Language/language.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/Language/language.js (révision 7841) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/Language/language.js (copie de travail) @@ -402,6 +402,9 @@ if (parent) { var direction = (button.itemId === 'RightToLeft') ? 'rtl' : 'ltr'; button.setInactive(parent.dir != direction && parent.style.direction != direction); + button.setDisabled(/^body$/i.test(parent.nodeName)); + } else { + button.setDisabled(true); } break; case 'ShowLanguageMarks':