forked from pool/kf6-ksvg
41 lines
1.5 KiB
Diff
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
|
|
|