From e007505d8f35c1194caf80ffc4f1e46561ff7be3 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 19 May 2010 11:10:11 +1000 Subject: When changing Loader source, remove old item from scene immediately. This ensures focus is restored to the correct item. Task-number: QTBUG-10787 --- src/declarative/graphicsitems/qdeclarativeloader.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp index 94983c4..4995baf 100644 --- a/src/declarative/graphicsitems/qdeclarativeloader.cpp +++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp @@ -81,8 +81,12 @@ void QDeclarativeLoaderPrivate::clear() // We can't delete immediately because our item may have triggered // the Loader to load a different item. - item->setVisible(false); - item->setParentItem(0); + if (item->scene()) { + item->scene()->removeItem(item); + } else { + item->setParentItem(0); + item->setVisible(false); + } item->deleteLater(); item = 0; } -- cgit v0.12