diff options
| author | Jasper van de Gronde <jasper.vandegronde@gmail.com> | 2009-04-20 15:48:18 +0000 |
|---|---|---|
| committer | jaspervdg <jaspervdg@users.sourceforge.net> | 2009-04-20 15:48:18 +0000 |
| commit | e9fcd68dd39adb788e381ba4b8e5f06b444e9c83 (patch) | |
| tree | 1da8a6c9d576c4b39df7a1db7ef601ef6bfec718 /src/filters | |
| parent | unhide lpe-sketch. removed "construction lines" feature of this effect + mino... (diff) | |
| download | inkscape-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.cpp | 40 |
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: |
