From 1f705968827f9dea3ee66e5ea9d35f00d360ad9a Mon Sep 17 00:00:00 2001 From: cmcnulty <cmcnulty@kznf.com> Date: Sat, 09 Nov 2013 21:49:23 -0500 Subject: [PATCH] CSS only solution to focused messages --- program/js/tiny_mce/plugins/directionality/editor_plugin_src.js | 39 +++++++++++++++++++++------------------ 1 files changed, 21 insertions(+), 18 deletions(-) diff --git a/program/js/tiny_mce/plugins/directionality/editor_plugin_src.js b/program/js/tiny_mce/plugins/directionality/editor_plugin_src.js index 4444959..b134014 100644 --- a/program/js/tiny_mce/plugins/directionality/editor_plugin_src.js +++ b/program/js/tiny_mce/plugins/directionality/editor_plugin_src.js @@ -15,30 +15,33 @@ t.editor = ed; - ed.addCommand('mceDirectionLTR', function() { - var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock); + function setDir(dir) { + var dom = ed.dom, curDir, blocks = ed.selection.getSelectedBlocks(); - if (e) { - if (ed.dom.getAttrib(e, "dir") != "ltr") - ed.dom.setAttrib(e, "dir", "ltr"); - else - ed.dom.setAttrib(e, "dir", ""); + if (blocks.length) { + curDir = dom.getAttrib(blocks[0], "dir"); + + tinymce.each(blocks, function(block) { + // Add dir to block if the parent block doesn't already have that dir + if (!dom.getParent(block.parentNode, "*[dir='" + dir + "']", dom.getRoot())) { + if (curDir != dir) { + dom.setAttrib(block, "dir", dir); + } else { + dom.setAttrib(block, "dir", null); + } + } + }); + + ed.nodeChanged(); } + } - ed.nodeChanged(); + ed.addCommand('mceDirectionLTR', function() { + setDir("ltr"); }); ed.addCommand('mceDirectionRTL', function() { - var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock); - - if (e) { - if (ed.dom.getAttrib(e, "dir") != "rtl") - ed.dom.setAttrib(e, "dir", "rtl"); - else - ed.dom.setAttrib(e, "dir", ""); - } - - ed.nodeChanged(); + setDir("rtl"); }); ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'}); -- Gitblit v1.9.1