diff options
Diffstat (limited to 'src/gui/image/qpixmap_blitter.cpp')
-rw-r--r-- | src/gui/image/qpixmap_blitter.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gui/image/qpixmap_blitter.cpp b/src/gui/image/qpixmap_blitter.cpp index 53e997e063..01fdd8b86a 100644 --- a/src/gui/image/qpixmap_blitter.cpp +++ b/src/gui/image/qpixmap_blitter.cpp @@ -130,8 +130,10 @@ int QBlittablePlatformPixmap::metric(QPaintDevice::PaintDeviceMetric metric) con void QBlittablePlatformPixmap::fill(const QColor &color) { - //jlind: todo: change when blittables can support non opaque fillRects - if (color.alpha() == 255 && blittable()->capabilities() & QBlittable::SolidRectCapability) { + if (blittable()->capabilities() & QBlittable::AlphaFillRectCapability) { + blittable()->unlock(); + blittable()->alphaFillRect(QRectF(0,0,w,h),color,QPainter::CompositionMode_Source); + } else if (color.alpha() == 255 && blittable()->capabilities() & QBlittable::SolidRectCapability) { blittable()->unlock(); blittable()->fillRect(QRectF(0,0,w,h),color); } else { |