From 93bee5bf6f3ab492ff070bcd01dbca82c7d50e09 Mon Sep 17 00:00:00 2001 From: Irka Date: Mon, 14 Jul 2014 03:33:11 +0300 Subject: [PATCH] MT#5879 Fix multi-undo functionality. Call setCurrentLayer => draw.setCurrentLayer only on initialization stages. --- .../svg-edit/extensions/ext-foreignobject.js | 4 +-- share/static/js/libs/svg-edit/svg-editor.js | 28 ++++++++++++------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/share/static/js/libs/svg-edit/extensions/ext-foreignobject.js b/share/static/js/libs/svg-edit/extensions/ext-foreignobject.js index 8e9da15835..1bb44b5f96 100644 --- a/share/static/js/libs/svg-edit/extensions/ext-foreignobject.js +++ b/share/static/js/libs/svg-edit/extensions/ext-foreignobject.js @@ -60,8 +60,8 @@ svgEditor.addExtension("foreignObject", function(S) { elt.parentNode.replaceChild(svgdoc.importNode(newDoc.documentElement.firstChild, true), elt); S.call("changed", [elt]); svgCanvas.clearSelection(); - //$('#layerlist td.layername').first().mouseup(); - svgEditor.populateLayers(); + svgEditor.populateLayers(); + svgEditor.initPopulatedLayers(); } catch(e) { console.log(e); return false; diff --git a/share/static/js/libs/svg-edit/svg-editor.js b/share/static/js/libs/svg-edit/svg-editor.js index 1f856472ac..25d63cf74d 100644 --- a/share/static/js/libs/svg-edit/svg-editor.js +++ b/share/static/js/libs/svg-edit/svg-editor.js @@ -937,7 +937,7 @@ TO-DOS var layersNum = svgCanvas.getCurrentDrawing().getNumLayers(); var icon = $.getSvgIcon('eye'); // we get the layers in the reverse z-order (the layer rendered on top is listed first) - var layer = 0; + var layer = 0; //while (layer--) { for (layer=0; layer < layersNum; layer++) { var name = drawing.getLayerName(layer); @@ -958,14 +958,14 @@ TO-DOS $('#layerlist tr.layer').removeClass('layersel'); $(this.parentNode).addClass('layersel'); svgCanvas.setCurrentLayer(this.textContent); - var applyLayerEyeVisibility = function(){ - var row = $(this.parentNode).prevAll().length; - var name = $('#layerlist tr.layer:eq(' + row + ') td.layername').text(); - var vis = !$(this).hasClass('layerinvis'); - svgCanvas.setLayerVisibility(name, vis); - }; - $('#layerlist td.layervis').each(applyLayerEyeVisibility); - svgCanvas.setLayerVisibility(this.textContent, true); + var applyLayerEyeVisibility = function(){ + var row = $(this.parentNode).prevAll().length; + var name = $('#layerlist tr.layer:eq(' + row + ') td.layername').text(); + var vis = !$(this).hasClass('layerinvis'); + svgCanvas.setLayerVisibility(name, vis); + }; + $('#layerlist td.layervis').each(applyLayerEyeVisibility); + svgCanvas.setLayerVisibility(this.textContent, true); evt.preventDefault(); }) .mouseover(function() { @@ -974,7 +974,6 @@ TO-DOS .mouseout(function() { toggleHighlightLayer(); }); - $('#layerlist td.layername').first().mouseup(); $('#layerlist td.layervis').click(function() { var row = $(this.parentNode).prevAll().length; var name = $('#layerlist tr.layer:eq(' + row + ') td.layername').text(); @@ -991,6 +990,10 @@ TO-DOS } }; + var initPopulatedLayers = function() { + $('#layerlist td.layername').first().mouseup(); + }; + var showSourceEditor = function(e, forSaving) { if (editingsource) {return;} @@ -1930,6 +1933,7 @@ TO-DOS // if the element changed was the svg, then it could be a resolution change if (elem && elem.tagName === 'svg') { populateLayers(); + initPopulatedLayers(); updateCanvas(); } // Update selectedElement if element is no longer part of the image. @@ -3824,6 +3828,7 @@ TO-DOS //zoomImage(); zoomChanged('', 'canvas'); populateLayers(); + initPopulatedLayers(); updateTitle(); prepPaints(); }; @@ -4437,6 +4442,9 @@ TO-DOS }); populateLayers(); + initPopulatedLayers(); + //we need select first layer only for + // function changeResolution(x,y) { // var zoom = svgCanvas.getResolution().zoom;