emit immutabilityChanged in all cases it changes

when an applet or cont is deleted, when invisible has systemimmutable as
its immutability (then restored to mutable if restored)
notify correctly the change

BUG:342704
Change-Id: Iea37fd287d6b120e161f5ac7ad4a17a078fec9bb
This commit is contained in:
Marco Martin 2015-01-21 15:03:15 +01:00
parent 237cb24b2d
commit 9898e1be4f

View File

@ -236,6 +236,8 @@ void AppletPrivate::askDestroy()
//this needs users feedback
transient = true;
emit q->destroyedChanged(true);
//when an applet gets transient, it's "systemimmutable"
emit q->immutabilityChanged(q->immutability());
//no parent, but it won't leak, since it will be closed both in case of timeout
//or direct action
deleteNotification = new KNotification("plasmoidDeleted", KNotification::Persistent, 0);
@ -264,6 +266,8 @@ void AppletPrivate::askDestroy()
Plasma::Applet *containmentApplet = static_cast<Plasma::Applet *>(q->containment());
if (containmentApplet && containmentApplet->d->deleteNotificationTimer) {
emit containmentApplet->destroyedChanged(false);
//when an applet gets transient, it's "systemimmutable"
emit q->immutabilityChanged(q->immutability());
delete containmentApplet->d->deleteNotificationTimer;
containmentApplet->d->deleteNotificationTimer = 0;
}
@ -276,6 +280,8 @@ void AppletPrivate::askDestroy()
emit q->containment()->appletAdded(q);
}
emit q->destroyedChanged(false);
//when an applet gets transient, it's "systemimmutable"
emit q->immutabilityChanged(q->immutability());
if (deleteNotification) {
deleteNotification->close();
}