summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sp-fecomposite.cpp2
-rw-r--r--src/sp-feoffset.cpp16
2 files changed, 14 insertions, 4 deletions
diff --git a/src/sp-fecomposite.cpp b/src/sp-fecomposite.cpp
index 68312aa1b..b191f9826 100644
--- a/src/sp-fecomposite.cpp
+++ b/src/sp-fecomposite.cpp
@@ -122,6 +122,8 @@ sp_feComposite_release(SPObject *object)
static double
sp_feComposite_read_number(gchar const *value) {
+ if (!value) return 0;
+
char *end;
double ret = g_ascii_strtod(value, &end);
if (*end) {
diff --git a/src/sp-feoffset.cpp b/src/sp-feoffset.cpp
index 284846855..03d8b6227 100644
--- a/src/sp-feoffset.cpp
+++ b/src/sp-feoffset.cpp
@@ -111,6 +111,7 @@ sp_feOffset_release(SPObject *object)
static double
sp_feOffset_read_number(gchar const *value) {
+ if (!value) return 0;
char *end;
double ret = g_ascii_strtod(value, &end);
if (*end) {
@@ -130,14 +131,21 @@ sp_feOffset_set(SPObject *object, unsigned int key, gchar const *value)
{
SPFeOffset *feOffset = SP_FEOFFSET(object);
+ double read_num;
switch(key) {
case SP_ATTR_DX:
- feOffset->dx = sp_feOffset_read_number(value);
- object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ read_num = sp_feOffset_read_number(value);
+ if (read_num != feOffset->dx) {
+ feOffset->dx = read_num;
+ object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ }
break;
case SP_ATTR_DY:
- feOffset->dy = sp_feOffset_read_number(value);
- object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ read_num = sp_feOffset_read_number(value);
+ if (read_num != feOffset->dy) {
+ feOffset->dy = read_num;
+ object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
+ }
break;
/*DEAL WITH SETTING ATTRIBUTES HERE*/