diff options
author | Jørgen Lind <jorgen.lind@nokia.com> | 2011-04-27 10:12:17 +0200 |
---|---|---|
committer | Samuel Rødal <samuel.rodal@nokia.com> | 2011-04-28 15:39:25 +0200 |
commit | d8784df713659f932731af2fd8f95b569e215842 (patch) | |
tree | 7c1c3f6710d756f9716c68a0a47ebf02f48f7996 /src/gui | |
parent | 54ab99d5e2cb33d87381ad11aba712e8162783d9 (diff) |
use QObject parent logic when setting parent for QWindow
(cherry picked from commit 2be9fdb4b58accea4078654efed49a50acf6c74d)
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/kernel/qwindow_qpa.cpp | 11 | ||||
-rw-r--r-- | src/gui/kernel/qwindow_qpa.h | 2 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/gui/kernel/qwindow_qpa.cpp b/src/gui/kernel/qwindow_qpa.cpp index 163b72fd81..d9a73632b7 100644 --- a/src/gui/kernel/qwindow_qpa.cpp +++ b/src/gui/kernel/qwindow_qpa.cpp @@ -83,8 +83,11 @@ public: }; QWindow::QWindow(QWindow *parent) - : QObject(*new QWindowPrivate(), parent) + : QObject(*new QWindowPrivate()) { + if (parent) { + setParent(parent); + } } QWindow::~QWindow() @@ -131,9 +134,12 @@ WId QWindow::winId() const return d->platformWindow->winId(); } -void QWindow::setParent(const QWindow *parent) +void QWindow::setParent(QWindow *parent) { Q_D(QWindow); + if (QObject::parent() == parent) { + return; + } //How should we support lazy init when setting parent if (!parent->d_func()->platformWindow) { const_cast<QWindow *>(parent)->create(); @@ -143,6 +149,7 @@ void QWindow::setParent(const QWindow *parent) create(); } d->platformWindow->setParent(parent->d_func()->platformWindow); + QObject::setParent(parent); } void QWindow::setWindowFormat(const QWindowFormat &format) diff --git a/src/gui/kernel/qwindow_qpa.h b/src/gui/kernel/qwindow_qpa.h index fc73b1b93c..3b31d106e0 100644 --- a/src/gui/kernel/qwindow_qpa.h +++ b/src/gui/kernel/qwindow_qpa.h @@ -92,7 +92,7 @@ public: void create(); WId winId() const; - void setParent(const QWindow *parent); + void setParent(QWindow *parent); void setWindowFormat(const QWindowFormat &format); QWindowFormat requestedWindowFormat() const; |