]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/js/tinymce/plugins/directionality/editor_plugin_src.js
Wordpress 3.5
[autoinstalls/wordpress.git] / wp-includes / js / tinymce / plugins / directionality / editor_plugin_src.js
index 205d02cd2fdc02cddcb028ef0d5819eb9656899a..c90732bbd6e46067f6cf7dcab4cf3946b9244622 100644 (file)
 
                        t.editor = ed;
 
-                       ed.addCommand('mceDirectionLTR', function() {
-                               var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
-
-                               if (e) {
-                                       if (ed.dom.getAttrib(e, "dir") != "ltr")
-                                               ed.dom.setAttrib(e, "dir", "ltr");
-                                       else
-                                               ed.dom.setAttrib(e, "dir", "");
+                       function setDir(dir) {
+                               var dom = ed.dom, curDir, blocks = ed.selection.getSelectedBlocks();
+
+                               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'});