From cefda675a7663b0fb54a048687d36898555f0fe1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= Date: Thu, 31 Jul 2014 15:59:24 +0200 Subject: [PATCH] =?utf8?q?Application=20du=20style=20sur=20s=C3=A9lection?= =?utf8?q?=20de=20fragments=20(au=20sens=20xml).?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/ckeditor/plugins/plinn_styles/plugin.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/skins/ckeditor/plugins/plinn_styles/plugin.js b/skins/ckeditor/plugins/plinn_styles/plugin.js index 245a0e1..7301c07 100644 --- a/skins/ckeditor/plugins/plinn_styles/plugin.js +++ b/skins/ckeditor/plugins/plinn_styles/plugin.js @@ -33,17 +33,28 @@ PlinnStylesCombo.prototype.init = function() { PlinnStylesCombo.prototype.onClick = function(value) { this.editor.focus(); - this.editor.fire( 'saveSnapshot' ); + this.editor.fire('saveSnapshot'); var style = this.styles[value] var className = style.className; + var ranges = this.editor.getSelection().getRanges(); var element = this.editor.elementPath().lastElement; + if(ranges.length === 1) { + var start = ranges[0].startContainer; + var end = ranges[0].endContainer; + if(start.$ !== end.$) { + // selection is a fragment that need to be wrapped in container to apply style + element = new CKEDITOR.dom.element('div'); + element.append(ranges[0].cloneContents()); + this.editor.insertElement(element); + } + } if (element.hasClass(className)) { element.removeClass(className); } else { element.addClass(className); } - this.editor.fire( 'saveSnapshot' ); + this.editor.fire('saveSnapshot'); }; var PlinnStylePlugin = function() { -- 2.20.1