summaryrefslogtreecommitdiffstats
path: root/src/ui/widget/object-composite-settings.cpp
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2008-01-01 04:40:39 +0000
committermental <mental@users.sourceforge.net>2008-01-01 04:40:39 +0000
commitf945ca25697eba3c92480719daeb0e5d4e66bb49 (patch)
tree53d5b8b3ec6955252d087245a5fe5094fd785442 /src/ui/widget/object-composite-settings.cpp
parentseparate blend history for objects versus layers (diff)
downloadinkscape-f945ca25697eba3c92480719daeb0e5d4e66bb49.tar.gz
inkscape-f945ca25697eba3c92480719daeb0e5d4e66bb49.zip
fix update on layer switch and work around some blur-related glitches
(bzr r4356)
Diffstat (limited to 'src/ui/widget/object-composite-settings.cpp')
-rw-r--r--src/ui/widget/object-composite-settings.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp
index 20fdbed03..5c38a1370 100644
--- a/src/ui/widget/object-composite-settings.cpp
+++ b/src/ui/widget/object-composite-settings.cpp
@@ -41,16 +41,17 @@ void ObjectCompositeSettings::_on_desktop_switch(
}
}
-ObjectCompositeSettings::ObjectCompositeSettings(unsigned int verb_code, char const *history_prefix)
+ObjectCompositeSettings::ObjectCompositeSettings(unsigned int verb_code, char const *history_prefix, bool blur_enabled)
: _verb_code(verb_code),
- _opacity_tag(Glib::ustring(history_prefix) + ":opacity"),
_blur_tag(Glib::ustring(history_prefix) + ":blur"),
+ _opacity_tag(Glib::ustring(history_prefix) + ":opacity"),
_opacity_vbox(false, 0),
_opacity_label_box(false, 0),
_opacity_label(_("Opacity, %"), 0.0, 1.0, true),
_opacity_adjustment(100.0, 0.0, 100.0, 1.0, 1.0, 0.0),
_opacity_hscale(_opacity_adjustment),
_opacity_spin_button(_opacity_adjustment, 0.01, 1),
+ _fe_cb(blur_enabled),
_fe_vbox(false, 0),
_fe_alignment(1, 1, 1, 1),
_blocked(false)
@@ -111,14 +112,15 @@ ObjectCompositeSettings::_blendBlurValueChanged()
sp_canvas_force_full_redraw_after_interruptions(sp_desktop_canvas(desktop), 0);
NR::Maybe<NR::Rect> bbox = _subject->getBounds();
- if (!bbox) {
- return;
+ double radius;
+ if (bbox) {
+ double perimeter = bbox->extent(NR::X) + bbox->extent(NR::Y);
+ radius = _fe_cb.get_blur_value() * perimeter / 400;
+ } else {
+ radius = 0;
}
- double perimeter = bbox->extent(NR::X) + bbox->extent(NR::Y);
-
const Glib::ustring blendmode = _fe_cb.get_blend_mode();
- double radius = _fe_cb.get_blur_value() * perimeter / 400;
SPFilter *filter = 0;
const bool remfilter = (blendmode == "normal" && radius == 0) || (blendmode == "filter" && !filter);