From 546d4c9d33ffe9c66b69798fef04a0355fe3f0b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 2 Aug 2023 12:22:28 +0200 Subject: tst_foreignwindow: Add basic test of foreign window reparenting Pick-to: 6.6 Change-Id: I008fad0f6527503a13ded4818eec5cb280f65cf4 Reviewed-by: Timur Pocheptsov --- tests/auto/gui/kernel/qwindow/tst_foreignwindow.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests/auto/gui/kernel/qwindow') diff --git a/tests/auto/gui/kernel/qwindow/tst_foreignwindow.cpp b/tests/auto/gui/kernel/qwindow/tst_foreignwindow.cpp index dc82d8b833..04c70e5fee 100644 --- a/tests/auto/gui/kernel/qwindow/tst_foreignwindow.cpp +++ b/tests/auto/gui/kernel/qwindow/tst_foreignwindow.cpp @@ -23,6 +23,8 @@ private slots: void fromWinId(); void initialState(); + + void embedForeignWindow(); }; void tst_ForeignWindow::fromWinId() @@ -67,5 +69,22 @@ void tst_ForeignWindow::initialState() QCOMPARE(foreignWindow->geometry(), initialGeometry); } +void tst_ForeignWindow::embedForeignWindow() +{ + // A foreign window embedded into a Qt UI requires that the rest of Qt + // is to be able to treat the foreign child window as any other window + // that it can show, hide, stack, and move around. + + QWindow parentWindow; + + NativeWindow nativeWindow; + QVERIFY(nativeWindow); + + // As a prerequisite to that, we must be able to reparent the foreign window + std::unique_ptr foreignWindow(QWindow::fromWinId(nativeWindow)); + foreignWindow.release()->setParent(&parentWindow); + QCOMPARE(nativeWindow.parentWinId(), parentWindow.winId()); +} + #include QTEST_MAIN(tst_ForeignWindow) -- cgit v1.2.3