summaryrefslogtreecommitdiffstats
path: root/src/display/drawing-item.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/display/drawing-item.cpp')
-rw-r--r--src/display/drawing-item.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/display/drawing-item.cpp b/src/display/drawing-item.cpp
index 80664d822..a9836a9e3 100644
--- a/src/display/drawing-item.cpp
+++ b/src/display/drawing-item.cpp
@@ -284,7 +284,7 @@ DrawingItem::setZOrder(unsigned z)
void
DrawingItem::setItemBounds(Geom::OptRect const &bounds)
{
- _item_bbox = bounds;
+ if (bounds) _filter_bbox = bounds;
}
/**
@@ -352,8 +352,10 @@ DrawingItem::update(Geom::IntRect const &area, UpdateContext const &ctx, unsigne
if (to_update & STATE_BBOX) {
// compute drawbox
- if (_filter && render_filters) {
- _drawbox = _filter->compute_drawbox(this, _item_bbox);
+ if (_filter && render_filters && _bbox) {
+ Geom::IntRect newbox(*_bbox);
+ _filter->area_enlarge(newbox, this);
+ _drawbox = Geom::OptIntRect(newbox);
} else {
_drawbox = _bbox;
}