summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@nokia.com>2011-04-27 10:12:17 +0200
committerSamuel Rødal <samuel.rodal@nokia.com>2011-04-28 15:39:25 +0200
commitd8784df713659f932731af2fd8f95b569e215842 (patch)
tree7c1c3f6710d756f9716c68a0a47ebf02f48f7996 /src/gui
parent54ab99d5e2cb33d87381ad11aba712e8162783d9 (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.cpp11
-rw-r--r--src/gui/kernel/qwindow_qpa.h2
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;