From 7b2c8378cfa48f1dad2bd86136e33095bb13b664 Mon Sep 17 00:00:00 2001 From: Thomas McGuire Date: Mon, 1 Oct 2012 15:28:04 +0200 Subject: QNX: Fix bug on window hierarchy list removeFromParent() must not be called from raise()/lower(), because it wrongly sets m_currentParent to 0, causing the parent/child link to be broken after a call either of these methods. This is a backport of qtbase commit 4c33efc3228d82a82e13fe8c196b8c74a4998572 Change-Id: I5970cd2b2e0d58ef01dd99c10748195220d0e006 Reviewed-by: Sean Harmer --- src/plugins/platforms/blackberry/qbbwindow.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/plugins/platforms/blackberry/qbbwindow.cpp b/src/plugins/platforms/blackberry/qbbwindow.cpp index ff66534..07a2f91 100644 --- a/src/plugins/platforms/blackberry/qbbwindow.cpp +++ b/src/plugins/platforms/blackberry/qbbwindow.cpp @@ -518,10 +518,9 @@ void QBBWindow::raise() qDebug() << "QBBWindow::raise - w=" << widget(); #endif - QBBWindow* oldParent = mParent; - if (oldParent) { - removeFromParent(); - oldParent->mChildren.push_back(this); + if (mParent) { + mParent->mChildren.removeAll(this); + mParent->mChildren.push_back(this); } else { mScreen->raiseWindow(this); } @@ -535,10 +534,9 @@ void QBBWindow::lower() qDebug() << "QBBWindow::lower - w=" << widget(); #endif - QBBWindow* oldParent = mParent; - if (oldParent) { - removeFromParent(); - oldParent->mChildren.push_front(this); + if (mParent) { + mParent->mChildren.removeAll(this); + mParent->mChildren.push_front(this); } else { mScreen->lowerWindow(this); } -- cgit v0.12