| | |
| | | }
|
| | |
|
| | | 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);
|
| | |
| | | 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);
|
| | |
| | | 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();
|
| | |
| | | }
|
| | |
|
| | | function recurse(element) {
|
| | | t.splitSafeEach(element.childNodes, processElement);
|
| | | t.splitSafeEach(element.childNodes, processElement, true); |
| | | }
|
| | |
|
| | | function brAtEdgeOfSelection(container, offset) {
|
| | |
| | | }
|
| | | },
|
| | |
|
| | | 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);
|
| | |
| | | },
|
| | |
|
| | | 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;
|
| | | },
|
| | |
|