From: Aleksander Ɓukasz Date: Thu, 11 Jul 2013 14:14:14 +0000 (+0200) Subject: intergration wip: unwrapping DocumentTextNode from its parent if it's its parent... X-Git-Url: https://git.mdrn.pl/fnpeditor.git/commitdiff_plain/3d09a2c29184336c6cd3c17d00e145e123e05293?ds=sidebyside intergration wip: unwrapping DocumentTextNode from its parent if it's its parent only child --- diff --git a/modules/documentCanvas/canvasManager.js b/modules/documentCanvas/canvasManager.js index 3618e11..b483937 100644 --- a/modules/documentCanvas/canvasManager.js +++ b/modules/documentCanvas/canvasManager.js @@ -194,30 +194,28 @@ Manager.prototype.toggleList = function(toggle) { Manager.prototype.command = function(command, params) { var selection = window.getSelection(), element1 = this.canvas.getDocumentElement(selection.anchorNode), - element2 = this.canvas.getDocumentElement(selection.focusNode); + element2 = this.canvas.getDocumentElement(selection.focusNode), + parent1 = element1.parent(), + parent2 = element2.parent(); if(command === 'unwrap-node') { // this.canvas.nodeUnwrap({node: canvasNode.create(pos.parentNode)}); // this.sandbox.publish('contentChanged'); - element1 = element1.parent(); - element2 = element2.parent(); - if(this.canvas.list.areItemsOfTheSameList({element1: element1, element2: element2})) { - this.canvas.list.extractItems({element1: element1, element2: element2}); + if(this.canvas.list.areItemsOfTheSameList({element1: parent1, element2: parent2})) { + this.canvas.list.extractItems({element1: parent1, element2: parent2}); + } else if (!selection.collapsed) { + element1.unwrap(); } } else if(command === 'wrap-node') { - element1 = element1.parent(); - element2 = element2.parent(); - if(this.canvas.list.areItemsOfTheSameList({element1: element1, element2: element2})) { - this.canvas.list.create({element1: element1, element2: element2}); + if(this.canvas.list.areItemsOfTheSameList({element1: parent1, element2: parent2})) { + this.canvas.list.create({element1: parent1, element2: parent2}); } } else if(command === 'toggle-list') { - element1 = element1.parent(); - element2 = element2.parent(); if(params.toggle) { - this.canvas.list.create({element1: element1, element2: element2}); + this.canvas.list.create({element1: parent1, element2: parent2}); } else { - if(this.canvas.list.areItemsOfTheSameList({element1: element1, element2: element2})) { - this.canvas.list.extractItems({element1: element1, element2: element2, merge: false}); + if(this.canvas.list.areItemsOfTheSameList({element1: parent1, element2: parent2})) { + this.canvas.list.extractItems({element1: parent1, element2: parent2, merge: false}); } } } else if(command == 'toggle-grid') {