]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/js/tinymce/plugins/lists/plugin.js
WordPress 4.2
[autoinstalls/wordpress.git] / wp-includes / js / tinymce / plugins / lists / plugin.js
index 036ba67d7aec829f257ab4d1b77594bef873b75b..a13c8ec54b31113837e78509048ec031d96512a3 100644 (file)
@@ -207,16 +207,30 @@ tinymce.PluginManager.add('lists', function(editor) {
                }
 
                function splitList(ul, li, newBlock) {
                }
 
                function splitList(ul, li, newBlock) {
-                       var tmpRng, fragment;
+                       var tmpRng, fragment, bookmarks, node;
 
 
-                       var bookmarks = dom.select('span[data-mce-type="bookmark"]', ul);
+                       function removeAndKeepBookmarks(targetNode) {
+                               tinymce.each(bookmarks, function(node) {
+                                       targetNode.parentNode.insertBefore(node, li.parentNode);
+                               });
 
 
+                               dom.remove(targetNode);
+                       }
+
+                       bookmarks = dom.select('span[data-mce-type="bookmark"]', ul);
                        newBlock = newBlock || createNewTextBlock(li);
                        tmpRng = dom.createRng();
                        tmpRng.setStartAfter(li);
                        tmpRng.setEndAfter(ul);
                        fragment = tmpRng.extractContents();
 
                        newBlock = newBlock || createNewTextBlock(li);
                        tmpRng = dom.createRng();
                        tmpRng.setStartAfter(li);
                        tmpRng.setEndAfter(ul);
                        fragment = tmpRng.extractContents();
 
+                       for (node = fragment.firstChild; node; node = node.firstChild) {
+                               if (node.nodeName == 'LI' && dom.isEmpty(node)) {
+                                       dom.remove(node);
+                                       break;
+                               }
+                       }
+
                        if (!dom.isEmpty(fragment)) {
                                dom.insertAfter(fragment, ul);
                        }
                        if (!dom.isEmpty(fragment)) {
                                dom.insertAfter(fragment, ul);
                        }
@@ -224,14 +238,14 @@ tinymce.PluginManager.add('lists', function(editor) {
                        dom.insertAfter(newBlock, ul);
 
                        if (dom.isEmpty(li.parentNode)) {
                        dom.insertAfter(newBlock, ul);
 
                        if (dom.isEmpty(li.parentNode)) {
-                               tinymce.each(bookmarks, function(node) {
-                                       li.parentNode.parentNode.insertBefore(node, li.parentNode);
-                               });
-
-                               dom.remove(li.parentNode);
+                               removeAndKeepBookmarks(li.parentNode);
                        }
 
                        dom.remove(li);
                        }
 
                        dom.remove(li);
+
+                       if (dom.isEmpty(ul)) {
+                               dom.remove(ul);
+                       }
                }
 
                function mergeWithAdjacentLists(listBlock) {
                }
 
                function mergeWithAdjacentLists(listBlock) {
@@ -709,14 +723,22 @@ tinymce.PluginManager.add('lists', function(editor) {
                        }
                };
 
                        }
                };
 
-               editor.addCommand('Indent', function() {
-                       if (!indentSelection()) {
-                               return true;
+               editor.on('BeforeExecCommand', function(e) {
+                       var cmd = e.command.toLowerCase(), isHandled;
+
+                       if (cmd == "indent") {
+                               if (indentSelection()) {
+                                       isHandled = true;
+                               }
+                       } else if (cmd == "outdent") {
+                               if (outdentSelection()) {
+                                       isHandled = true;
+                               }
                        }
                        }
-               });
 
 
-               editor.addCommand('Outdent', function() {
-                       if (!outdentSelection()) {
+                       if (isHandled) {
+                               editor.fire('ExecCommand', {command: e.command});
+                               e.preventDefault();
                                return true;
                        }
                });
                                return true;
                        }
                });