remove the handle from the scene before deleting it; this prevents full screen repaints whenever a widget has the mouse passed over it. will backport.

svn path=/trunk/KDE/kdelibs/; revision=1012691
This commit is contained in:
Aaron J. Seigo 2009-08-17 23:40:07 +00:00
parent 0ecafe8131
commit de4e6d5bf1

View File

@ -1945,6 +1945,9 @@ void ContainmentPrivate::handleDisappeared(AppletHandle *handle)
if (handles.contains(handle->applet())) {
handles.remove(handle->applet());
handle->detachApplet();
if (q->scene()) {
q->scene()->removeItem(handle);
}
handle->deleteLater();
}
}
@ -1991,6 +1994,11 @@ void ContainmentPrivate::containmentConstraintsEvent(Plasma::Constraints constra
foreach (AppletHandle *handle, h) {
handle->disconnect(q);
if (q->scene()) {
q->scene()->removeItem(handle);
}
handle->deleteLater();
}
}
@ -2072,6 +2080,9 @@ void ContainmentPrivate::appletDestroyed(Plasma::Applet *applet)
if (handles.contains(applet)) {
AppletHandle *handle = handles.value(applet);
handles.remove(applet);
if (q->scene()) {
q->scene()->removeItem(handle);
}
handle->deleteLater();
}