summaryrefslogtreecommitdiffstats
path: root/src/ui/widget/object-composite-settings.cpp
diff options
context:
space:
mode:
authorJabiertxof <jabier.arraiza@marker.es>2019-10-28 15:56:06 +0000
committerJabiertxof <jabier.arraiza@marker.es>2019-10-28 15:56:06 +0000
commita226c6d04a8b96e9bb8ed1d593780ef77808b344 (patch)
tree5114d05b576a479ac1355f1d46e241cbf298d8c4 /src/ui/widget/object-composite-settings.cpp
parentUpdate Russian translation (diff)
downloadinkscape-a226c6d04a8b96e9bb8ed1d593780ef77808b344.tar.gz
inkscape-a226c6d04a8b96e9bb8ed1d593780ef77808b344.zip
Fix some blurs iddle large loops
Diffstat (limited to 'src/ui/widget/object-composite-settings.cpp')
-rw-r--r--src/ui/widget/object-composite-settings.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp
index d628870e2..adf6427a7 100644
--- a/src/ui/widget/object-composite-settings.cpp
+++ b/src/ui/widget/object-composite-settings.cpp
@@ -109,30 +109,27 @@ ObjectCompositeSettings::_blendBlurValueChanged()
if (!SP_IS_ITEM(*i)) {
continue;
}
-
SPItem * item = SP_ITEM(*i);
SPStyle *style = item->style;
g_assert(style != nullptr);
+ bool change_blend = (item->style->mix_blend_mode.set ? item->style->mix_blend_mode.value : SP_CSS_BLEND_NORMAL) != _filter_modifier.get_blend_mode();
item->style->mix_blend_mode.set = TRUE;
if (item->style->isolation.value == SP_CSS_ISOLATION_ISOLATE) {
item->style->mix_blend_mode.value = SP_CSS_BLEND_NORMAL;
} else {
item->style->mix_blend_mode.value = _filter_modifier.get_blend_mode();
}
- item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT);
if (radius == 0 && item->style->filter.set
&& filter_is_single_gaussian_blur(SP_FILTER(item->style->getFilter()))) {
remove_filter(item, false);
- }
- else if (radius != 0) {
+ } else if (radius != 0) {
SPFilter *filter = modify_filter_gaussian_blur_from_item(document, item, radius);
sp_style_set_property_url(item, "filter", filter, false);
+ }
+ if (change_blend) { //we do blend so we need update display style
+ item->updateRepr(SP_OBJECT_WRITE_NO_CHILDREN | SP_OBJECT_WRITE_EXT);
}
-
- //request update
- item->requestDisplayUpdate(( SP_OBJECT_MODIFIED_FLAG |
- SP_OBJECT_STYLE_MODIFIED_FLAG ));
}
DocumentUndo::maybeDone(document, _blur_tag.c_str(), _verb_code,