Aleksander Machniak
2013-03-24 24e88e91f7ebac132fa356762b0cd544d42cef9f
program/js/tiny_mce/plugins/lists/editor_plugin_src.js
@@ -440,9 +440,9 @@
         }
         function fixDeletingFirstCharOfList(ed, e) {
            function listElements(list, li) {
            function listElements(li) {
               var elements = [];
               var walker = new tinymce.dom.TreeWalker(li, list);
               var walker = new tinymce.dom.TreeWalker(li.firstChild, li);
               for (var node = walker.current(); node; node = walker.next()) {
                  if (ed.dom.is(node, 'ol,ul,li')) {
                     elements.push(node);
@@ -454,9 +454,11 @@
            if (e.keyCode == tinymce.VK.BACKSPACE) {
               var li = getLi();
               if (li) {
                  var list = ed.dom.getParent(li, 'ol,ul');
                  if (list && list.firstChild === li) {
                     var elements = listElements(list, li);
                  var list = ed.dom.getParent(li, 'ol,ul'),
                     rng  = ed.selection.getRng();
                  if (list && list.firstChild === li && rng.startOffset == 0) {
                     var elements = listElements(li);
                     elements.unshift(li);
                     ed.execCommand("Outdent", false, elements);
                     ed.undoManager.add();
                     return Event.cancel(e);
@@ -474,7 +476,7 @@
                  ed.dom.remove(li, true);
                  var textNodes = tinymce.grep(prevLi.childNodes, function(n){ return n.nodeType === 3 });
                  if (textNodes.length === 1) {
                     var textNode = textNodes[0]
                     var textNode = textNodes[0];
                     ed.selection.setCursorLocation(textNode, textNode.length);
                  }
                  ed.undoManager.add();
@@ -722,7 +724,8 @@
         } else {
            actions = {
               defaultAction: convertListItemToParagraph,
               elements: this.selectedBlocks()
               elements: this.selectedBlocks(),
               processEvenIfEmpty: true
            };
         }
         this.process(actions);
@@ -826,7 +829,7 @@
         function processElement(element) {
            dom.removeClass(element, '_mce_act_on');
            if (!element || element.nodeType !== 1 || selectedBlocks.length > 1 && isEmptyElement(element)) {
            if (!element || element.nodeType !== 1 || ! actions.processEvenIfEmpty && selectedBlocks.length > 1 && isEmptyElement(element)) {
               return;
            }
            element = findItemToOperateOn(element, dom);
@@ -838,7 +841,7 @@
         }
         function recurse(element) {
            t.splitSafeEach(element.childNodes, processElement);
            t.splitSafeEach(element.childNodes, processElement, true);
         }
         function brAtEdgeOfSelection(container, offset) {
@@ -889,9 +892,11 @@
         }
      },
      splitSafeEach: function(elements, f) {
         if (tinymce.isGecko && (/Firefox\/[12]\.[0-9]/.test(navigator.userAgent) ||
               /Firefox\/3\.[0-4]/.test(navigator.userAgent))) {
      splitSafeEach: function(elements, f, forceClassBase) {
         if (forceClassBase ||
            (tinymce.isGecko &&
               (/Firefox\/[12]\.[0-9]/.test(navigator.userAgent) ||
                /Firefox\/3\.[0-4]/.test(navigator.userAgent)))) {
            this.classBasedEach(elements, f);
         } else {
            each(elements, f);
@@ -932,8 +937,7 @@
      },
      selectedBlocks: function() {
         var ed = this.ed
         var selectedBlocks = ed.selection.getSelectedBlocks();
         var ed = this.ed, selectedBlocks = ed.selection.getSelectedBlocks();
         return selectedBlocks.length == 0 ? [ ed.dom.getRoot() ] : selectedBlocks;
      },