FrameSvg: Recache maskFrame if enabledBorders has been changed

Authored by zzag on Jun 2 2018, 9:02 AM.

Description

FrameSvg: Recache maskFrame if enabledBorders has been changed

Summary:
In some cases, when rendering frame svg background, measures & margins
do not correspond to enabledBorders. I.e. bottomHeight may be equal to 5,
but the bottom border is disabled. This causes visual artifacts like this

Pay close attention to the bottom of the Task switcher. It has a transparent strip at the bottom, which shouldn't be there.

The cause of this problem is that FrameSVGPrivate::alphaMask doesn't take enabledBorders
into account when it's making decision whether it should update maskFrame.

Just for reference, this is "after"

BUG: 382324
BUG: 390632
BUG: 391659

Test Plan:

  • Triggered the Breeze task switcher (with compositing on and off)
  • Didn't see any transparent strips

  • Tried running FrameSvgTest, still passes

Reviewers: Plasma, Frameworks, mart

Reviewed By: Plasma, mart

Subscribers: abetts, mart, aseigo, broulik, kde-frameworks-devel

Tags: Frameworks

Differential Revision: https://phabricator.kde.org/D13215