diff options
| author | Alvin Penner <penner@vaxxine.com> | 2013-06-10 22:31:48 +0000 |
|---|---|---|
| committer | apenner <penner@vaxxine.com> | 2013-06-10 22:31:48 +0000 |
| commit | f7c8895ed8dafb5ce4785b8eb825dba39d7e19c5 (patch) | |
| tree | 9fb1c747c47fad9725a8c3d3b65a460d170d904d /src | |
| parent | Remove use of separate array for scale values. (diff) | |
| download | inkscape-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.cpp | 6 | ||||
| -rw-r--r-- | src/sp-item.cpp | 5 |
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); } |
