From 74f9f9cbd226407f8cde08c5cd5a711444e2775d Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Wed, 19 Jun 2024 09:11:56 +0000 Subject: [PATCH] Restore proper devicepixelratio when extracting from cache like in base Svg, also in FrameSvg restore the proper devicepixelratio when getting the image from the cache, as KImageCache doesn't save or restore the information about it. This fixes blur region mask sometimes wrong behind floating panels BUG:488295 --- src/ksvg/framesvg.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ksvg/framesvg.cpp b/src/ksvg/framesvg.cpp index c1d22b1a..3b094abd 100644 --- a/src/ksvg/framesvg.cpp +++ b/src/ksvg/framesvg.cpp @@ -524,10 +524,16 @@ void FrameSvgPrivate::generateBackground(const QSharedPointer &frame) QPixmap overlay; if (q->isUsingRenderingCache()) { frameCached = q->imageSet()->d->findInCache(QString::number(id), frame->cachedBackground, frame->lastModified) && !frame->cachedBackground.isNull(); + if (frameCached) { + frame->cachedBackground.setDevicePixelRatio(q->devicePixelRatio()); + } if (overlayAvailable) { const size_t overlayId = qHash(cacheId(frame.data(), frame->prefix % QLatin1String("overlay"))); overlayCached = q->imageSet()->d->findInCache(QString::number(overlayId), overlay, frame->lastModified) && !overlay.isNull(); + if (overlayCached) { + overlay.setDevicePixelRatio(q->devicePixelRatio()); + } } } -- 2.45.2