\r
t.editor = ed;\r
\r
- ed.addCommand('mceDirectionLTR', function() {\r
- var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);\r
-\r
- if (e) {\r
- if (ed.dom.getAttrib(e, "dir") != "ltr")\r
- ed.dom.setAttrib(e, "dir", "ltr");\r
- else\r
- ed.dom.setAttrib(e, "dir", "");\r
+ function setDir(dir) {\r
+ var dom = ed.dom, curDir, blocks = ed.selection.getSelectedBlocks();\r
+\r
+ if (blocks.length) {\r
+ curDir = dom.getAttrib(blocks[0], "dir");\r
+\r
+ tinymce.each(blocks, function(block) {\r
+ // Add dir to block if the parent block doesn't already have that dir\r
+ if (!dom.getParent(block.parentNode, "*[dir='" + dir + "']", dom.getRoot())) {\r
+ if (curDir != dir) {\r
+ dom.setAttrib(block, "dir", dir);\r
+ } else {\r
+ dom.setAttrib(block, "dir", null);\r
+ }\r
+ }\r
+ });\r
+\r
+ ed.nodeChanged();\r
}\r
+ }\r
\r
- ed.nodeChanged();\r
+ ed.addCommand('mceDirectionLTR', function() {\r
+ setDir("ltr");\r
});\r
\r
ed.addCommand('mceDirectionRTL', function() {\r
- var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);\r
-\r
- if (e) {\r
- if (ed.dom.getAttrib(e, "dir") != "rtl")\r
- ed.dom.setAttrib(e, "dir", "rtl");\r
- else\r
- ed.dom.setAttrib(e, "dir", "");\r
- }\r
-\r
- ed.nodeChanged();\r
+ setDir("rtl");\r
});\r
\r
ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});\r