summaryrefslogtreecommitdiffstats
path: root/src/filters
diff options
context:
space:
mode:
authorJasper van de Gronde <jasper.vandegronde@gmail.com>2009-04-20 15:48:18 +0000
committerjaspervdg <jaspervdg@users.sourceforge.net>2009-04-20 15:48:18 +0000
commite9fcd68dd39adb788e381ba4b8e5f06b444e9c83 (patch)
tree1da8a6c9d576c4b39df7a1db7ef601ef6bfec718 /src/filters
parentunhide lpe-sketch. removed "construction lines" feature of this effect + mino... (diff)
downloadinkscape-e9fcd68dd39adb788e381ba4b8e5f06b444e9c83.tar.gz
inkscape-e9fcd68dd39adb788e381ba4b8e5f06b444e9c83.zip
Fix to prevent convolvematrix.cpp from setting targetX/Y to zero if no value is given.
(bzr r7744)
Diffstat (limited to 'src/filters')
-rw-r--r--src/filters/convolvematrix.cpp40
1 files changed, 22 insertions, 18 deletions
diff --git a/src/filters/convolvematrix.cpp b/src/filters/convolvematrix.cpp
index 41028fb20..7402dc8cb 100644
--- a/src/filters/convolvematrix.cpp
+++ b/src/filters/convolvematrix.cpp
@@ -210,27 +210,31 @@ sp_feConvolveMatrix_set(SPObject *object, unsigned int key, gchar const *value)
}
break;
case SP_ATTR_TARGETX:
- read_int = (int) helperfns_read_number(value);
- if (read_int < 0 || read_int > feConvolveMatrix->order.getNumber()){
- g_warning("targetX must be a value between 0 and orderX! Assuming orderX as default value.");
- read_int = (int) feConvolveMatrix->order.getNumber();
- }
- feConvolveMatrix->targetXIsSet = true;
- if (read_int != feConvolveMatrix->targetX){
- feConvolveMatrix->targetX = read_int;
- object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ if (value) {
+ read_int = (int) helperfns_read_number(value);
+ if (read_int < 0 || read_int > feConvolveMatrix->order.getNumber()){
+ g_warning("targetX must be a value between 0 and orderX! Assuming floor(orderX/2) as default value.");
+ read_int = (int) floor(feConvolveMatrix->order.getNumber()/2.0);
+ }
+ feConvolveMatrix->targetXIsSet = true;
+ if (read_int != feConvolveMatrix->targetX){
+ feConvolveMatrix->targetX = read_int;
+ object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ }
}
break;
case SP_ATTR_TARGETY:
- read_int = (int) helperfns_read_number(value);
- if (read_int < 0 || read_int > feConvolveMatrix->order.getOptNumber()){
- g_warning("targetY must be a value between 0 and orderY! Assuming orderY as default value.");
- read_int = (int) feConvolveMatrix->order.getOptNumber();
- }
- feConvolveMatrix->targetYIsSet = true;
- if (read_int != feConvolveMatrix->targetY){
- feConvolveMatrix->targetY = read_int;
- object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ if (value) {
+ read_int = (int) helperfns_read_number(value);
+ if (read_int < 0 || read_int > feConvolveMatrix->order.getOptNumber()){
+ g_warning("targetY must be a value between 0 and orderY! Assuming floor(orderY/2) as default value.");
+ read_int = (int) floor(feConvolveMatrix->order.getOptNumber()/2.0);
+ }
+ feConvolveMatrix->targetYIsSet = true;
+ if (read_int != feConvolveMatrix->targetY){
+ feConvolveMatrix->targetY = read_int;
+ object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ }
}
break;
case SP_ATTR_EDGEMODE: