summaryrefslogtreecommitdiffstats
path: root/src/display
diff options
context:
space:
mode:
Diffstat (limited to 'src/display')
-rw-r--r--src/display/drawing-item.cpp10
-rw-r--r--src/display/nr-filter-primitive.cpp8
2 files changed, 11 insertions, 7 deletions
diff --git a/src/display/drawing-item.cpp b/src/display/drawing-item.cpp
index 83d4744c9..89ca66dc4 100644
--- a/src/display/drawing-item.cpp
+++ b/src/display/drawing-item.cpp
@@ -366,10 +366,12 @@ DrawingItem::setStyle(SPStyle *style, SPStyle *context_style)
// std::cout << "DrawingItem::setStyle: " << name() << " " << style
// << " " << context_style << std::endl;
- if (style) sp_style_ref(style);
- if (_style) sp_style_unref(_style);
- _style = style;
-
+ if( style != _style ) {
+ if (style) sp_style_ref(style);
+ if (_style) sp_style_unref(_style);
+ _style = style;
+ }
+
if (style && style->filter.set && style->getFilter()) {
if (!_filter) {
int primitives = sp_filter_primitive_count(SP_FILTER(style->getFilter()));
diff --git a/src/display/nr-filter-primitive.cpp b/src/display/nr-filter-primitive.cpp
index 3033118e4..c8b569036 100644
--- a/src/display/nr-filter-primitive.cpp
+++ b/src/display/nr-filter-primitive.cpp
@@ -171,9 +171,11 @@ Geom::Rect FilterPrimitive::filter_primitive_area(FilterUnits const &units)
void FilterPrimitive::setStyle(SPStyle *style)
{
- if (style) sp_style_ref(style);
- if (_style) sp_style_unref(_style);
- _style = style;
+ if( style != _style ) {
+ if (style) sp_style_ref(style);
+ if (_style) sp_style_unref(_style);
+ _style = style;
+ }
}