From 523e4567797473fcc8ae993c2f8533cbb29224be Mon Sep 17 00:00:00 2001 From: Alex Pott Date: Mon, 4 Jan 2016 18:39:42 +0000 Subject: [PATCH] Issue #2569893 by quicksketch, Wim Leers, DuaelFr: CKEditor alignment buttons can be used even when the align filter is disabled --- .../js/plugins/drupalimagecaption/plugin.js | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js b/core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js index 44e89dffd89..d1d666c5b94 100644 --- a/core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js +++ b/core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js @@ -244,6 +244,27 @@ }; // Low priority to ensure drupalimage's event handler runs first. }, null, null, 20); + }, + + afterInit: function (editor) { + var disableButtonIfOnWidget = function (evt) { + var widget = editor.widgets.focused; + if (widget && widget.name === 'image') { + this.setState(CKEDITOR.TRISTATE_DISABLED); + evt.cancel(); + } + }; + + // Disable alignment buttons if the align filter is not enabled. + if (editor.plugins.justify && !editor.config.drupalImageCaption_alignFilterEnabled) { + var cmd; + var commands = ['justifyleft', 'justifycenter', 'justifyright', 'justifyblock']; + for (var n = 0; n < commands.length; n++) { + cmd = editor.getCommand(commands[n]); + cmd.contextSensitive = 1; + cmd.on('refresh', disableButtonIfOnWidget, null, null, 4); + } + } } });