use QObject parent logic when setting parent for QWindow
(cherry picked from commit 2be9fdb4b58accea4078654efed49a50acf6c74d)
This commit is contained in:
parent
54ab99d5e2
commit
d8784df713
@ -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)
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user