summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlvin Penner <penner@vaxxine.com>2013-06-10 22:31:48 +0000
committerapenner <penner@vaxxine.com>2013-06-10 22:31:48 +0000
commitf7c8895ed8dafb5ce4785b8eb825dba39d7e19c5 (patch)
tree9fb1c747c47fad9725a8c3d3b65a460d170d904d /src
parentRemove use of separate array for scale values. (diff)
downloadinkscape-f7c8895ed8dafb5ce4785b8eb825dba39d7e19c5.tar.gz
inkscape-f7c8895ed8dafb5ce4785b8eb825dba39d7e19c5.zip
use visual bbox in calculation of filter area (Bug 1188336)
Fixed bugs: - https://launchpad.net/bugs/1188336 (bzr r12362)
Diffstat (limited to 'src')
-rw-r--r--src/display/nr-filter.cpp6
-rw-r--r--src/sp-item.cpp5
2 files changed, 8 insertions, 3 deletions
diff --git a/src/display/nr-filter.cpp b/src/display/nr-filter.cpp
index eeba94d7c..f0965c460 100644
--- a/src/display/nr-filter.cpp
+++ b/src/display/nr-filter.cpp
@@ -114,7 +114,8 @@ int Filter::render(Inkscape::DrawingItem const *item, DrawingContext &graphic, D
Geom::Affine trans = item->ctm();
- Geom::OptRect filter_area = filter_effect_area(item->itemBounds());
+// Geom::OptRect filter_area = filter_effect_area(item->itemBounds()); // disabled, already done in visualBounds
+ Geom::OptRect filter_area = item->itemBounds(); // see LP Bug 1188336
if (!filter_area) return 1;
FilterUnits units(_filter_units, _primitive_units);
@@ -221,7 +222,8 @@ void Filter::area_enlarge(Geom::IntRect &bbox, Inkscape::DrawingItem const *item
Geom::OptIntRect Filter::compute_drawbox(Inkscape::DrawingItem const *item, Geom::OptRect const &item_bbox) {
- Geom::OptRect enlarged = filter_effect_area(item_bbox);
+// Geom::OptRect enlarged = filter_effect_area(item_bbox); // disabled, already done in visualBounds
+ Geom::OptRect enlarged = item_bbox; // see LP Bug 1188336
if (enlarged) {
*enlarged *= item->ctm();
diff --git a/src/sp-item.cpp b/src/sp-item.cpp
index 19d71ed44..a4070c9b3 100644
--- a/src/sp-item.cpp
+++ b/src/sp-item.cpp
@@ -646,7 +646,7 @@ sp_item_update(SPObject *object, SPCtx *ctx, guint flags)
/* Update bounding box data used by filters */
if (item->style->filter.set && item->display) {
- Geom::OptRect item_bbox = item->geometricBounds();
+ Geom::OptRect item_bbox = item->visualBounds();
SPItemView *itemview = item->display;
do {
@@ -1089,6 +1089,9 @@ Inkscape::DrawingItem *SPItem::invoke_show(Inkscape::Drawing &drawing, unsigned
sp_mask_set_bbox(SP_MASK(mask), mask_key, item_bbox);
mask->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
}
+ if (style->filter.set && display) {
+ item_bbox = visualBounds();
+ }
ai->setData(this);
ai->setItemBounds(item_bbox);
}