davidedmundson added inline comments.

INLINE COMMENTS

> framesvg.cpp:136
>  
> -    FrameData *fd = d->frames[d->prefix];
> -
> -    const QString oldKey = d->cacheId(fd, d->prefix);
> -    const EnabledBorders oldBorders = fd->enabledBorders;
> -    fd->enabledBorders = borders;
> -    const QString newKey = d->cacheId(fd, d->prefix);
> -    fd->enabledBorders = oldBorders;
> -
> -    //qCDebug(LOG_PLASMA) << "looking for" << newKey;
> -    FrameData *newFd = 
> FrameSvgPrivate::s_sharedFrames[theme()->d].value(newKey);
> -    if (newFd) {
> -        //qCDebug(LOG_PLASMA) << "FOUND IT!" << newFd->refcount;
> -        // we've found a math, so insert that new one and ref it ..
> -        newFd->ref(this);
> -        d->frames.insert(d->prefix, newFd);
> -
> -        //.. then deref the old one and if it's no longer used, get rid of it
> -        if (fd->deref(this)) {
> -            //const QString oldKey = d->cacheId(fd, d->prefix);
> -            //qCDebug(LOG_PLASMA) << "1. Removing it" << oldKey << 
> fd->refcount;
> -            FrameSvgPrivate::s_sharedFrames[fd->theme].remove(oldKey);
> -            delete fd;
> -        }
> +    d->pendingEnabledBorders = borders;
>  

I'm lost on why we have the pendingEnabledBorders

you have some bugs if you do:

setRepaintBlocked(false);
setEnabledBorders(Left)
enabledBorders() /// returns All not Left.

it'll get updated later but after the changed signal on the FrameSvgItem.

Do we need to know the old borders when we update? If so can we revert this 
logic to have a d->oldBorders that gets set at the end of the update method?

REPOSITORY
  R242 Plasma Framework (Library)

REVISION DETAIL
  https://phabricator.kde.org/D4414

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: mart, #plasma
Cc: davidedmundson, plasma-devel, #frameworks, lesliezhai, ali-mohamed, 
jensreuterberg, abetts, sebas, apol

Reply via email to