summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Dufour <nicoduf@yahoo.fr>2013-03-28 19:23:28 +0000
committerJazzyNico <nicoduf@yahoo.fr>2013-03-28 19:23:28 +0000
commit6d5fa9cf53cf9114cc5b7e2f52a69b61a5aaa440 (patch)
tree01fe204a4050f919d7405e8ca13077313500d687
parentfix build (diff)
downloadinkscape-6d5fa9cf53cf9114cc5b7e2f52a69b61a5aaa440.tar.gz
inkscape-6d5fa9cf53cf9114cc5b7e2f52a69b61a5aaa440.zip
Fix for Bug #648233 (Measure Path extension doesn't use real superscript) by Craig Marshall.
Fix for Bug #481805 (Rectangle with rounded corners) by Markus Engel. (bzr r12255)
-rwxr-xr-xshare/extensions/measure.py17
-rw-r--r--src/sp-rect.cpp4
2 files changed, 16 insertions, 5 deletions
diff --git a/share/extensions/measure.py b/share/extensions/measure.py
index a1ae00ce1..8aa940ed2 100755
--- a/share/extensions/measure.py
+++ b/share/extensions/measure.py
@@ -83,7 +83,10 @@ def csparea(csp):
bezarea += ( 3.0*sp[i-1][1][1] - 1.0*sp[i-1][2][1] - 2.0*sp[i][0][1] + 0.0*sp[i][1][1])*sp[i][1][0]
area += 0.15*bezarea
return abs(area)
-
+def appendSuperScript(node, text):
+ super = inkex.etree.SubElement(node, inkex.addNS('tspan', 'svg'), {'style': 'font-size:65%;baseline-shift:super'})
+ super.text = text
+
class Length(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
@@ -180,7 +183,11 @@ class Length(inkex.Effect):
new.set('startOffset', startOffset)
new.set('dy', str(dy)) # dubious merit
#new.append(tp)
- new.text = str(text)
+ if text[-2:] == "^2":
+ appendSuperScript(new, "2")
+ new.text = str(text)[:-2]
+ else:
+ new.text = str(text)
#node.set('transform','rotate(180,'+str(-x)+','+str(-y)+')')
node.set('x', str(x))
node.set('y', str(y))
@@ -193,7 +200,11 @@ class Length(inkex.Effect):
'font-weight': 'normal', 'font-style': 'normal', 'fill': '#000000'}
new.set('style', simplestyle.formatStyle(s))
new.set('dy', str(dy))
- new.text = str(text)
+ if text[-2:] == "^2":
+ appendSuperScript(new, "2")
+ new.text = str(text)[:-2]
+ else:
+ new.text = str(text)
node.set('x', str(x))
node.set('y', str(y))
node.set('transform', 'rotate(%s, %s, %s)' % (angle, x, y))
diff --git a/src/sp-rect.cpp b/src/sp-rect.cpp
index e7e1432c2..747a988a9 100644
--- a/src/sp-rect.cpp
+++ b/src/sp-rect.cpp
@@ -120,13 +120,13 @@ sp_rect_set(SPObject *object, unsigned key, gchar const *value)
object->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
break;
case SP_ATTR_RX:
- if (!rect->rx.read(value) || rect->rx.value < 0.0) {
+ if (!rect->rx.read(value) || rect->rx.value <= 0.0) {
rect->rx.unset();
}
object->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
break;
case SP_ATTR_RY:
- if (!rect->ry.read(value) || rect->ry.value < 0.0) {
+ if (!rect->ry.read(value) || rect->ry.value <= 0.0) {
rect->ry.unset();
}
object->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);