From b23502fba4a50226cb7a302370038b76897d9d24 Mon Sep 17 00:00:00 2001 From: Magne Bratseth Date: Tue, 9 Feb 2016 15:16:44 +0100 Subject: [PATCH 1/4] Do not strip rx=0 and ry=0 from ellipse elements as these values are not default and holds a special meaning for ellipses (a value of 0 disables rendering of the element) --- editor/svgutils.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/editor/svgutils.js b/editor/svgutils.js index befbb302..4d5814aa 100644 --- a/editor/svgutils.js +++ b/editor/svgutils.js @@ -620,6 +620,7 @@ svgedit.utilities.assignAttributes = function(node, attrs, suspendLength, unitCh // Parameters: // element - DOM element to clean up svgedit.utilities.cleanupElement = function(element) { + var nodeName = element.nodeName ? element.nodeName : ''; var defaults = { 'fill-opacity':1, 'stop-opacity':1, @@ -630,8 +631,8 @@ svgedit.utilities.cleanupElement = function(element) { 'stroke-linecap':'butt', 'stroke-opacity':1, 'stroke-width':1, - 'rx':0, - 'ry':0 + 'rx': (nodeName == 'ellipse' ? null : 0), // rx=0 and ry=0 is valid value which are different than null/empty + 'ry': (nodeName == 'ellipse' ? null : 0) }; var attr; From 0cf2fc57a15186ac6a829ac22c7cb9af5ec5928b Mon Sep 17 00:00:00 2001 From: Magne Bratseth Date: Thu, 25 Feb 2016 09:03:20 +0100 Subject: [PATCH 2/4] Slight changes to make the code more readable --- editor/svgutils.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/editor/svgutils.js b/editor/svgutils.js index 4d5814aa..3cb11283 100644 --- a/editor/svgutils.js +++ b/editor/svgutils.js @@ -620,7 +620,6 @@ svgedit.utilities.assignAttributes = function(node, attrs, suspendLength, unitCh // Parameters: // element - DOM element to clean up svgedit.utilities.cleanupElement = function(element) { - var nodeName = element.nodeName ? element.nodeName : ''; var defaults = { 'fill-opacity':1, 'stop-opacity':1, @@ -631,10 +630,17 @@ svgedit.utilities.cleanupElement = function(element) { 'stroke-linecap':'butt', 'stroke-opacity':1, 'stroke-width':1, - 'rx': (nodeName == 'ellipse' ? null : 0), // rx=0 and ry=0 is valid value which are different than null/empty - 'ry': (nodeName == 'ellipse' ? null : 0) + 'rx': 0, + 'ry': 0 }; + var nodeName = element.nodeName ? element.nodeName : ''; + if (nodeName == 'ellipse') { + // Ellipse elements requires rx and ry attributes + delete defaults.rx; + delete defaults.ry; + } + var attr; for (attr in defaults) { var val = defaults[attr]; From 78f214de8b853bbcfe624fcd7acd897d237771de Mon Sep 17 00:00:00 2001 From: Magne Bratseth Date: Thu, 25 Feb 2016 09:05:50 +0100 Subject: [PATCH 3/4] Cosmetics --- editor/svgutils.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/editor/svgutils.js b/editor/svgutils.js index 3cb11283..dcc8c118 100644 --- a/editor/svgutils.js +++ b/editor/svgutils.js @@ -630,8 +630,8 @@ svgedit.utilities.cleanupElement = function(element) { 'stroke-linecap':'butt', 'stroke-opacity':1, 'stroke-width':1, - 'rx': 0, - 'ry': 0 + 'rx':0, + 'ry':0 }; var nodeName = element.nodeName ? element.nodeName : ''; From 48e54b6f859f83f61af24e18979665aabbe302a5 Mon Sep 17 00:00:00 2001 From: Magne Bratseth Date: Fri, 26 Feb 2016 09:46:32 +0100 Subject: [PATCH 4/4] Simplify the code a bit more --- editor/svgutils.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/editor/svgutils.js b/editor/svgutils.js index dcc8c118..d3d9b011 100644 --- a/editor/svgutils.js +++ b/editor/svgutils.js @@ -634,8 +634,7 @@ svgedit.utilities.cleanupElement = function(element) { 'ry':0 }; - var nodeName = element.nodeName ? element.nodeName : ''; - if (nodeName == 'ellipse') { + if (element.nodeName === 'ellipse') { // Ellipse elements requires rx and ry attributes delete defaults.rx; delete defaults.ry;