From 2f535d55163412db3f864d6103811b3d35b73aa7 Mon Sep 17 00:00:00 2001 From: "Aaron J. Seigo" Date: Fri, 18 Sep 2009 21:24:14 +0000 Subject: [PATCH] if we have a target item and the target is visible but the background item isn't, show the background item and just move it into place svn path=/trunk/KDE/kdelibs/; revision=1025473 --- widgets/itembackground.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/widgets/itembackground.cpp b/widgets/itembackground.cpp index f78f50f3f..a8a6bc064 100644 --- a/widgets/itembackground.cpp +++ b/widgets/itembackground.cpp @@ -95,7 +95,7 @@ void ItemBackground::setTarget(const QRectF &newGeometry) d->oldGeometry = geometry(); d->newGeometry = newGeometry; - if (!isVisible()) { + if (!isVisible() && (!d->target || !d->target->isVisible())) { setGeometry(d->newGeometry); return; } @@ -109,6 +109,12 @@ void ItemBackground::setTarget(const QRectF &newGeometry) Plasma::Animator::self()->stopCustomAnimation(d->animId); } + if (d->target && d->target->isVisible() && !isVisible()) { + setGeometry(newGeometry); + d->oldGeometry = newGeometry; + show(); + } + d->fading = false; d->opacity = 1; d->animId = Plasma::Animator::self()->customAnimation( @@ -133,6 +139,8 @@ void ItemBackground::setTargetItem(QGraphicsItem *target) } if (target) { + d->target = target; + setZValue(target->zValue() - 1); setParentItem(target->parentItem()); QRectF rect = target->boundingRect(); @@ -140,8 +148,6 @@ void ItemBackground::setTargetItem(QGraphicsItem *target) setTarget(rect); if (d->target != target) { - d->target = target; - d->target->installSceneEventFilter(this); QObject *obj = 0; @@ -235,7 +241,7 @@ void ItemBackgroundPrivate::animationUpdate(qreal progress) q->hide(); immediate = false; } - } else { + } else if (oldGeometry != newGeometry) { q->setGeometry(oldGeometry.x() + (newGeometry.x() - oldGeometry.x()) * progress, oldGeometry.y() + (newGeometry.y() - oldGeometry.y()) * progress, oldGeometry.width() + (newGeometry.width() - oldGeometry.width()) * progress,