summaryrefslogtreecommitdiffstats
path: root/src/declarative/fx/qfxpainteditem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/fx/qfxpainteditem.cpp')
-rw-r--r--src/declarative/fx/qfxpainteditem.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/declarative/fx/qfxpainteditem.cpp b/src/declarative/fx/qfxpainteditem.cpp
index 8323628..c79abbd 100644
--- a/src/declarative/fx/qfxpainteditem.cpp
+++ b/src/declarative/fx/qfxpainteditem.cpp
@@ -217,10 +217,10 @@ void QFxPaintedItem::paintContents(QPainter &p)
bool oldAntiAliasing = p.testRenderHint(QPainter::Antialiasing);
bool oldSmoothPixmap = p.testRenderHint(QPainter::SmoothPixmapTransform);
- if (d->smooth) {
- p.setRenderHints(QPainter::Antialiasing, true);
+ if (oldAntiAliasing)
+ p.setRenderHints(QPainter::Antialiasing, false); // cannot stitch properly otherwise
+ if (d->smooth)
p.setRenderHints(QPainter::SmoothPixmapTransform, true);
- }
QRectF clipf = p.clipRegion().boundingRect();
if (clipf.isEmpty())
clipf = mapToScene(content); // ### Inefficient: Maps toScene and then fromScene
@@ -286,10 +286,11 @@ void QFxPaintedItem::paintContents(QPainter &p)
p.drawPixmap(target.toRect(), newitem->image);
}
}
- if (d->smooth) {
+
+ if (oldAntiAliasing)
p.setRenderHints(QPainter::Antialiasing, oldAntiAliasing);
+ if (d->smooth)
p.setRenderHints(QPainter::SmoothPixmapTransform, oldSmoothPixmap);
- }
}
/*!