prevent full screen repaints when applet handles are removed

svn path=/branches/KDE/4.3/kdelibs/; revision=1012693
This commit is contained in:
Aaron J. Seigo 2009-08-17 23:41:59 +00:00
parent 8e3cd5be72
commit 0300c7e7af

View File

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