diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2013-09-22 16:53:57 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2013-09-22 16:53:57 +0000 |
| commit | 8cf510753057485dcf07a5ad4587ffe8c7f7eaa2 (patch) | |
| tree | 26df259064bee700c6a44df885a990ada2a15612 /src/display/drawing-item.cpp | |
| parent | Update to trunk (diff) | |
| parent | Fix CMake build (follow-up to r12567) (diff) | |
| download | inkscape-8cf510753057485dcf07a5ad4587ffe8c7f7eaa2.tar.gz inkscape-8cf510753057485dcf07a5ad4587ffe8c7f7eaa2.zip | |
update to trunk
(bzr r11950.1.147)
Diffstat (limited to 'src/display/drawing-item.cpp')
| -rw-r--r-- | src/display/drawing-item.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/display/drawing-item.cpp b/src/display/drawing-item.cpp index a9836a9e3..1af07cb44 100644 --- a/src/display/drawing-item.cpp +++ b/src/display/drawing-item.cpp @@ -281,8 +281,15 @@ DrawingItem::setZOrder(unsigned z) _markForRendering(); } -void -DrawingItem::setItemBounds(Geom::OptRect const &bounds) +void DrawingItem::setItemBounds(Geom::OptRect const &bounds) +{ + if (!bounds) return; + Geom::IntRect copy = bounds->roundOutwards(); + if (_filter) _filter->area_enlarge(copy, this); + this->setFilterBounds(copy); +} + +void DrawingItem::setFilterBounds(Geom::OptRect const &bounds) { if (bounds) _filter_bbox = bounds; } @@ -352,10 +359,10 @@ DrawingItem::update(Geom::IntRect const &area, UpdateContext const &ctx, unsigne if (to_update & STATE_BBOX) { // compute drawbox - if (_filter && render_filters && _bbox) { - Geom::IntRect newbox(*_bbox); - _filter->area_enlarge(newbox, this); - _drawbox = Geom::OptIntRect(newbox); + if (_filter && render_filters && _filter_bbox) { + Geom::OptRect enlarged = _filter_bbox; + *enlarged *= ctm(); + _drawbox = enlarged->roundOutwards(); } else { _drawbox = _bbox; } |
