diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2016-11-07 18:33:46 +0000 |
|---|---|---|
| committer | jabiertxof <info@marker.es> | 2016-11-07 18:33:46 +0000 |
| commit | ade23a14a5b64bd2ddcf183abedd6b678efbc7da (patch) | |
| tree | e184e5b62a9536fb9356509a0787659249997ceb /src/ui/dialog/objects.cpp | |
| parent | Fix some bugs pointed by vlada (diff) | |
| parent | 1639832 Blend and blur unspected results (diff) | |
| download | inkscape-ade23a14a5b64bd2ddcf183abedd6b678efbc7da.tar.gz inkscape-ade23a14a5b64bd2ddcf183abedd6b678efbc7da.zip | |
Update to trunk
(bzr r15142.1.36)
Diffstat (limited to 'src/ui/dialog/objects.cpp')
| -rw-r--r-- | src/ui/dialog/objects.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 09ffc9c4c..446af4ccb 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -1512,11 +1512,18 @@ void ObjectsPanel::_blendChangedIter(const Gtk::TreeIter& iter, Glib::ustring bl if (SP_IS_GAUSSIANBLUR(&primitive)) { Geom::OptRect bbox = item->bounds(SPItem::GEOMETRIC_BBOX); if (bbox) { - radius = SP_GAUSSIANBLUR(&primitive)->stdDeviation.getNumber(); + double perimeter = bbox->dimensions()[Geom::X] + bbox->dimensions()[Geom::Y]; // fixme: this is only half the perimeter, is that correct? + radius = _fe_blur.get_blur_value() * perimeter / 400; } } } } + if (radius != 0) { + // The modify function expects radius to be in display pixels. + Geom::Affine i2d (item->i2dt_affine()); + double expansion = i2d.descrim(); + radius *= expansion; + } SPFilter *filter = new_filter_simple_from_item(_document, item, blendmode.c_str(), radius); sp_style_set_property_url(item, "filter", filter, false); } else { |
