summaryrefslogtreecommitdiffstats
path: root/src/display/drawing-surface.cpp
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2011-08-09 08:01:41 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2011-08-09 08:01:41 +0000
commit52d06f53a4efef7c6880e34cad9de0c770fc13ad (patch)
tree22f952631d5bc0a59a402cb27b08a28cbb2449e6 /src/display/drawing-surface.cpp
parentUse cache even if only part of the redraw region is clean (diff)
downloadinkscape-52d06f53a4efef7c6880e34cad9de0c770fc13ad.tar.gz
inkscape-52d06f53a4efef7c6880e34cad9de0c770fc13ad.zip
Fix invalidation on scrolling
(bzr r10347.1.29)
Diffstat (limited to 'src/display/drawing-surface.cpp')
-rw-r--r--src/display/drawing-surface.cpp6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/display/drawing-surface.cpp b/src/display/drawing-surface.cpp
index 43cf50b88..e5564f2b3 100644
--- a/src/display/drawing-surface.cpp
+++ b/src/display/drawing-surface.cpp
@@ -193,7 +193,6 @@ DrawingCache::markClean(Geom::IntRect const &area)
void
DrawingCache::scheduleTransform(Geom::IntRect const &new_area, Geom::Affine const &trans)
{
- if (new_area.hasZeroArea() && trans.isIdentity()) return;
_pending_area = new_area;
_pending_transform *= trans;
}
@@ -205,15 +204,12 @@ DrawingCache::prepare()
{
Geom::IntRect old_area = pixelArea();
bool is_identity = _pending_transform.isIdentity();
- if (is_identity) {
- if (_pending_area == old_area) return;
- }
+ if (is_identity && _pending_area == old_area) return; // no change
bool is_integer_translation = false;
if (!is_identity && _pending_transform.isTranslation()) {
Geom::IntPoint t = _pending_transform.translation().round();
if (Geom::are_near(Geom::Point(t), _pending_transform.translation())) {
- // integer translation or identity with change of area
is_integer_translation = true;
cairo_region_translate(_clean_region, t[X], t[Y]);
if (old_area + t == _pending_area) {