diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp index fc2bb30..70546aa 100644 --- a/src/plugins/platforms/windows/qwindowscontext.cpp +++ b/src/plugins/platforms/windows/qwindowscontext.cpp @@ -783,9 +783,12 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message, case QtWindows::InputMethodCloseCandidateWindowEvent: // TODO: Release/regrab mouse if a popup has mouse grab. return false; - case QtWindows::ClipboardEvent: case QtWindows::DestroyEvent: - + if (!platformWindow->testFlag(QWindowsWindow::WithinDestroy)) + qWarning() << platformWindow->window() << "externally destroyed"; + return false; + case QtWindows::ClipboardEvent: + return false; case QtWindows::UnknownEvent: return false; case QtWindows::AccessibleObjectFromWindowRequest: diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index 44fd97e..1540b94 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -470,10 +470,14 @@ void WindowCreationData::fromWindow(const QWindow *w, const Qt::WindowFlags flag // Parent: Use transient parent for top levels. if (popup) { flags |= Qt::WindowStaysOnTopHint; // a popup stays on top, no parent. + qDebug() << "POP" << w; } else if (!embedded) { - if (const QWindow *parentWindow = topLevel ? w->transientParent() : w->parent()) + if (const QWindow *parentWindow = topLevel ? w->transientParent() : w->parent()) { parentHandle = QWindowsWindow::handleOf(parentWindow); + qDebug() << "TP" << w <transientParent()) newTransientParent = QWindowsWindow::handleOf(tp); + qDebug() << __FUNCTION__ << window() << newTransientParent; if (newTransientParent && newTransientParent != oldTransientParent) SetWindowLongPtr(m_data.hwnd, GWL_HWNDPARENT, (LONG_PTR)newTransientParent); #endif // !Q_OS_WINCE