zzag added a comment.
I think I got it. FrameSVGPrivate::updateFrameData updates only `frame`, `maskFrame` is updated lazily in `alphaMask` method, but the alphaMask method ignores previous state of enabledBorders. So, we end up with using stale maskFrame. E.g. FrameSVGPrivate::updateFrameData() { if (!fd) { ... old key = "10_216_768_1_1__dialogs/background" old borders = QFlags<Plasma::FrameSvg::EnabledBorders>(BottomBorder|RightBorder) new key = "8_216_768_1_1__dialogs/background" new borders = QFlags<Plasma::FrameSvg::EnabledBorders>(RightBorder) Now, when we call alphaMask, FrameSVGPrivate::alphaMask() { if (maskPrefix.isNull()) { } else { ... oldKey = "10_216_768_1_1_mask-_dialogs/background" REPOSITORY R242 Plasma Framework (Library) REVISION DETAIL https://phabricator.kde.org/D13215 To: zzag, #plasma, #frameworks Cc: mart, aseigo, broulik, kde-frameworks-devel, michaelh, ngraham, bruns