D13215: Update sizes before generating frame svg background

Vlad Zagorodniy noreply at phabricator.kde.org
Fri Jun 1 13:17:12 UTC 2018


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20180601/b23e7928/attachment.html>


More information about the Kde-frameworks-devel mailing list