summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabiertxof <jabier.arraiza@marker.es>2018-11-16 18:24:17 +0000
committerJabiertxof <jabier.arraiza@marker.es>2018-11-16 18:24:17 +0000
commite1eae41f45f3a3e38c3186daca6c6f4e4eb20ca2 (patch)
treeb19f751fcbc6ba657fafa796b2190132cdcbe58a /src
parentFix format string (diff)
downloadinkscape-e1eae41f45f3a3e38c3186daca6c6f4e4eb20ca2.tar.gz
inkscape-e1eae41f45f3a3e38c3186daca6c6f4e4eb20ca2.zip
Fix area on filtered elements, also force cache it for fast view
Diffstat (limited to 'src')
-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 dd3d962bb..2a62c4b47 100644
--- a/src/display/drawing-item.cpp
+++ b/src/display/drawing-item.cpp
@@ -725,13 +725,15 @@ DrawingItem::render(DrawingContext &dc, Geom::IntRect const &area, unsigned flag
// carea is the area to paint
Geom::OptIntRect carea = Geom::intersect(area, _drawbox);
- if (!carea) return RENDER_OK;
-
+
// expand render on filtered items
Geom::OptIntRect cl = _cacheRect();
- if (_filter && render_filters) {
+ if (_filter != nullptr && render_filters && cl) {
+ setCached(true, true);
carea = cl;
}
+
+ if (!carea) return RENDER_OK;
// Device scale for HiDPI screens (typically 1 or 2)
int device_scale = dc.surface()->device_scale();