diff options
author | Samuel Rødal <samuel.rodal@nokia.com> | 2011-06-03 09:57:57 +0200 |
---|---|---|
committer | Samuel Rødal <samuel.rodal@nokia.com> | 2011-06-03 10:00:25 +0200 |
commit | ac4276531cc755ce7c4522d0ea900d47a752c309 (patch) | |
tree | d4d3f80f102b53b8ef87de2b72013a40fc4182da /src/widgets/kernel/qwidget_qpa.cpp | |
parent | 17613b7addb81927b64bdf28cace66ec58d083d7 (diff) |
Made tst_QWidget::winIdChangeEvent() pass with Lighthouse.
We need to call setWinId() at appropriate times, and enable creation of
native handles for child widgets when createWinId() is called.
Diffstat (limited to 'src/widgets/kernel/qwidget_qpa.cpp')
-rw-r--r-- | src/widgets/kernel/qwidget_qpa.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp index ebd618057c..ccfec7c0a1 100644 --- a/src/widgets/kernel/qwidget_qpa.cpp +++ b/src/widgets/kernel/qwidget_qpa.cpp @@ -184,6 +184,7 @@ void QWidgetPrivate::setParent_sys(QWidget *newparent, Qt::WindowFlags f) Q_Q(QWidget); Qt::WindowFlags oldFlags = data.window_flags; + bool wasCreated = q->testAttribute(Qt::WA_WState_Created); int targetScreen = -1; // Handle a request to move the widget to a particular screen @@ -196,6 +197,8 @@ void QWidgetPrivate::setParent_sys(QWidget *newparent, Qt::WindowFlags f) newparent = 0; } + setWinId(0); + if (parent != newparent) { QObjectPrivate::setParent_helper(newparent); //### why does this have to be done in the _sys function??? if (q->windowHandle()) { @@ -231,6 +234,8 @@ void QWidgetPrivate::setParent_sys(QWidget *newparent, Qt::WindowFlags f) if (!(f&Qt::Window) && (oldFlags&Qt::Window) && !q->testAttribute(Qt::WA_NativeWindow)) { //qDebug() << "setParent_sys() change from toplevel"; q->destroy(); + } else if (wasCreated) { + q->createWinId(); } adjustFlags(f, q); |