diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp index 93234f3..45138f6 100644 --- a/src/widgets/kernel/qwidget_qpa.cpp +++ b/src/widgets/kernel/qwidget_qpa.cpp @@ -70,7 +70,12 @@ void q_createNativeChildrenAndSetParent(const QWidget *parentWidget) const QWidget *childWidget = qobject_cast(children.at(i)); if (childWidget) { // should not be necessary if (childWidget->testAttribute(Qt::WA_NativeWindow)) { - if (!childWidget->windowHandle()) + const bool d= (childWidget->internalWinId() != 0) != (childWidget->windowHandle() != 0); + qDebug() << __FUNCTION__ << childWidget + << "internalWinId: " << childWidget->internalWinId() + << "windowHandle: " << childWidget->windowHandle() + << (d ? "(!!)internalWinId != windowHandle(!!)" : ""); + if (!childWidget->internalWinId()) childWidget->winId(); if (childWidget->windowHandle()) { QWindow *parentWindow = childWidget->nativeParentWidget()->windowHandle(); @@ -91,6 +96,7 @@ void q_createNativeChildrenAndSetParent(const QWidget *parentWidget) void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyOldWindow) { Q_Q(QWidget); + qDebug() << __FUNCTION__ << q << window; Q_UNUSED(window); Q_UNUSED(initializeWindow); @@ -155,7 +161,9 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO } setWindowModified_helper(); + WId id = win->winId(); + qDebug() << __FUNCTION__ << q << id << win; // See the QPlatformWindow::winId() documentation Q_ASSERT(id != WId(0)); setWinId(id); @@ -903,6 +911,7 @@ static const char activeXNativeParentHandleProperty[] = "_q_embedded_native_pare void QWidgetPrivate::createTLSysExtra() { Q_Q(QWidget); + qDebug() << q << __FUNCTION__ ; if (!extra->topextra->window && (q->testAttribute(Qt::WA_NativeWindow) || q->isWindow())) { extra->topextra->window = new QWidgetWindow(q); if (extra->minw || extra->minh) @@ -919,6 +928,7 @@ void QWidgetPrivate::createTLSysExtra() if (q->inherits("QTipLabel") || q->inherits("QAlphaWidget")) extra->topextra->window->setProperty("_q_windowsDropShadow", QVariant(true)); #endif + qDebug() << q << "created" << extra->topextra->window ; } }