SHA256
1
0
forked from pool/kf6-ksvg
kf6-ksvg/0001-Restore-proper-devicepixelratio-when-extracting-from.patch

41 lines
1.5 KiB
Diff

From 74f9f9cbd226407f8cde08c5cd5a711444e2775d Mon Sep 17 00:00:00 2001
From: Marco Martin <notmart@gmail.com>
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<FrameData> &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