diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index d4861d0e..fe70a732 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -1526,41 +1526,41 @@ function BatchCommand(text) { }; var getUrlFromAttr = this.getUrlFromAttr; - var removeUnusedGrads = function() { + var removeUnusedDefElems = function() { var defs = svgcontent.getElementsByTagNameNS(svgns, "defs"); if(!defs || !defs.length) return 0; - var all_els = svgcontent.getElementsByTagNameNS(svgns, '*'), - grad_uses = [], + var defelem_uses = [], numRemoved = 0; + var attrs = ['fill', 'stroke', 'filter', 'marker-start', 'marker-mid', 'marker-end']; + var alen = attrs.length; - $.each(all_els, function(i, el) { - var fill = getUrlFromAttr(el.getAttribute('fill')); - if(fill) { - grad_uses.push(fill.substr(1)); - } - - var stroke = getUrlFromAttr(el.getAttribute('stroke')); - if (stroke) { - grad_uses.push(stroke.substr(1)); + var all_els = svgcontent.getElementsByTagNameNS(svgns, '*'); + var all_len = all_els.length; + + for(var i=0; i 0) {}; + while (removeUnusedDefElems() > 0) {}; + pathActions.clear(true); // Keep SVG-Edit comment on top @@ -9057,7 +9058,7 @@ function BatchCommand(text) { recalculateDimensions: recalculateDimensions, remapElement: remapElement, RemoveElementCommand: RemoveElementCommand, - removeUnusedGrads: removeUnusedGrads, + removeUnusedDefElems: removeUnusedDefElems, resetUndoStack: resetUndoStack, round: round, runExtensions: runExtensions,