From 3d09a2c29184336c6cd3c17d00e145e123e05293 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Thu, 11 Jul 2013 16:14:14 +0200 Subject: [PATCH 1/1] intergration wip: unwrapping DocumentTextNode from its parent if it's its parent only child --- modules/documentCanvas/canvasManager.js | 26 ++++++++++++------------- 1 file changed, 12 insertions(+), 14 deletions(-) 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') { -- 2.20.1