From 0c8dd9dc2b54913cc07ae8898bae310feb0c75c9 Mon Sep 17 00:00:00 2001 From: Vlad Zagorodniy Date: Tue, 12 Jun 2018 19:27:48 +0300 Subject: [PATCH] FrameSvg: Update mask frame if image path has been changed Summary: A FrameSvg can have wrong mask frame if image path has been changed after the mask frame was generated. Take image path into account when deciding whether the mask frame should be updated to address that problem. Depends on D13384 Reviewers: #plasma, #frameworks, mart Reviewed By: #plasma, mart Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D13496 --- src/plasma/framesvg.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plasma/framesvg.cpp b/src/plasma/framesvg.cpp index 57a64bc3c..155d4ceab 100644 --- a/src/plasma/framesvg.cpp +++ b/src/plasma/framesvg.cpp @@ -469,13 +469,15 @@ QPixmap FrameSvgPrivate::alphaMask() } const bool shouldUpdate = maskFrame->enabledBorders != frame->enabledBorders - || maskFrame->frameSize != frameSize(frame); + || maskFrame->frameSize != frameSize(frame) + || maskFrame->imagePath != frame->imagePath; if (shouldUpdate) { if (maskFrame->refcount() == 1) { const QString oldKey = cacheId(maskFrame, maskPrefix); s_sharedFrames[q->theme()->d].remove(oldKey); maskFrame->enabledBorders = frame->enabledBorders; maskFrame->frameSize = frameSize(frame).toSize(); + maskFrame->imagePath = frame->imagePath; const QString newKey = cacheId(maskFrame, maskPrefix); s_sharedFrames[q->theme()->d].insert(newKey, maskFrame); maskFrame->cachedBackground = QPixmap();