summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/kernel/qwindow
Commit message (Collapse)AuthorAgeFilesLines
* iOS: Always call setParent during QIOSWindow constructionTor Arne Vestbø2024-05-081-0/+6
| | | | | | | | | | | | | We rely on setParent for parenting top level windows into our desktop manager view, so we can't condition the call on having a parent window, like we do on other platforms. This was a regression from 988039729f55a5e62e32b82c6f29ff7457e91d9d. Fixes: QTBUG-125142 Pick-to: 6.7 Change-Id: I2884d77db09cba5371ccd77eabda7ce38c0292de Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QWindow: Persist foreign winId to support destroy/create cyclesTor Arne Vestbø2024-04-191-0/+48
| | | | | | | | | | | | | | | | | | | | | | | | We used to set a private _q_foreignWinId property on QWindow when creating foreign windows, and this was the mechanism which we then passed the foreign winId to the platform plugin. With c585802e946d97e7d177ea334a162dc7bc286b84 this was removed, since we now were passing the winId through via explicit QPA APIs, and since 0c6911e5cde24c45d6f2c08b6e71064bdd1eccfa removed the ability to explicitly destroy() a foreign window. But when closing a QWindow, we destroy both the window itself, and all its children, including foreign windows. In this case we still want to support recreating the foreign window, for example when the parent window is shown again. To enable this we restore the _q_foreignWinId private property, but keep the limitation of not being able to explicitly destroy a foreign window. Pick-to: 6.7 6.5 Fixes: QTBUG-124160 Change-Id: Ia885ba9f043e64fb21eedd2b4c344679726f1b5c Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Change license for tests filesLucie Gérard2024-02-042-2/+2
| | | | | | | | | | | | According to QUIP-18 [1], all tests file should be LicenseRef-Qt-Commercial OR GPL-3.0-only [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: I9657df5d660820e56c96d511ea49d321c54682e8 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* Tests: remove blacklisted CIs no longer availableChristian Ehrlicher2023-12-061-2/+0
| | | | | | | | | | | | | | | | Remove the following CIs from BLACKLIST files as they are no longer used: - msvc-2015 - msvc-2017 - windows-7sp1 - opensuse-42.3 - ubuntu 16.04/18.04/20.04 - rhel 6.6/7.4/7.6 - redhatenterpriselinuxworkstation-6.6 Change-Id: Ief9550e3455a1ed211d978933262c8d5557b0fec Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* Disable tst_ForeignWindow::embedForeignWindow() null-parent check on LinuxTor Arne Vestbø2023-11-221-0/+3
| | | | | | | | It's flakey, so let's unbreak the build while we investigate further. Pick-to: 6.6 Change-Id: I9f7559803dd3ebc80946e5e5c5d31292101cd36f Reviewed-by: Liang Qi <liang.qi@qt.io>
* Stabilize tst_ForeignWindow::embedForeignWindow()Tor Arne Vestbø2023-11-191-5/+1
| | | | | | | | | | We only care about no longer being a child of the old parent window, not what the system does when we reparent to nullptr. Pick-to: 6.6 Change-Id: Ibd670432f0fd2595195d3951014a570dfdb7a998 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add dedicated child and parent events for QWindow reparentingTor Arne Vestbø2023-11-171-0/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | When a QWindow is parented into another window, either via its constructor, or via setParent(), we also update the QObject parent of the window. This in turn sends ChildAdded and ChildRemoved events to the new and old parent of the window, as well as ParentAboutToChange and ParentChange to the window itself. But at the point when these events are sent, the QWindow parent relationship has not been fully established. We have not updated d->parentWindow, nor have we propagated the parent relationship to the platform window. This is problematic because clients can not use these events to react to window parent changes synchronously. For example. trying to raise a child window when added to a parent is not going to work, because at that point the child window isn't a native child of the parent. Instead of re-using the QObject events for QWindow, like QWidget does, by delaying the events or sending them manually at a point when the window parent relationship has been fully formed, we opt to add new dedicated events. Change-Id: I019c14eba444861f537e4f68ab3a82297f843cf7 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Prevent reparenting of foreign window embedding containerTor Arne Vestbø2023-11-151-0/+45
| | | | | | | | | | | A foreign window used to embed a Qt window into it should not end up with changes to its own parent, as its only job is to give the embedded Qt window a parent handle. Pick-to: 6.6 Change-Id: If1bc89658fedf449d266bc0cc750c90b6a841a68 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add checking if using eglfsMarcin Zdunek2023-11-131-0/+31
| | | | | | | | | | | We are using eglfs in VxWorks which make 3 few testcases fail, because eglfs windows are fullscreen by default. This is the same solution as in qt5 in tag 5.12.6 from commit with hash 39027ef076c. [...] EGLFS forces the first top-level window - either a QWidget or a QQuickView - to become fullscreen. [...] from: https://doc.qt.io/qt-6/embedded-linux.html Change-Id: I3ab3208b3c7c1b2e27d879bac1ee0679f48109e2 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* tst_QWindow::setVisibleThenCreate(): Fix unused argument warningTor Arne Vestbø2023-11-131-1/+1
| | | | | | | | Use the arguments to call the parent class implementation. Pick-to: 6.5 6.6 Change-Id: I602a66447fb8681b3ec9ef8e2e281828612d178c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Ensure foreign window can be reparented out of contained window againTor Arne Vestbø2023-11-131-1/+8
| | | | | | | | | A foreign window embedded into a Qt hierarchy must also support being removed from that window hierarchy. Pick-to: 6.6 Change-Id: Id4d08079ff19d67a8989937bc72602e8bd14b31b Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* macOS: Check NSWindow as well when determining if setVisible can bail outTor Arne Vestbø2023-10-301-0/+20
| | | | | | | | | | | | | | | | In be268ae19731ab854931e43eea83e0e140ec2538 we made QCocoaWindow::setVisible idempotent by checking if NSView.hidden needed update. This failed to take into account the case when a window is moved from being a child window to a top level, where the window is still visible and the NSView's hidden state doesn't change, but we need to order in the NSWindow that we're now managing. We now check NSWindow.visible as well, if we're a top level window. Pick-to: 6.5 6.6 Change-Id: I94434d6ebfe2c9ece6eac7f83f17ead250ccc07a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Avoid creating child windows twice when already visibleTor Arne Vestbø2023-10-211-0/+35
| | | | | | | | | | | | | | | | | | | | | | | When a child window is made visible without its parent having been created yet, we defer creating and making the child visible until the parent is created. But if a child window is explicitly created, we create the parent first. And creating the parent will in turn apply visibility to all children that had their visibility deferred. Which includes creating the child. This results in child -> parent -> child creation recursion, which means that when we return from creating the parent window we already have a platform window for our child, and should bail out. Pick-to: 6.6 6.5 Change-Id: I11dc4864b57f031de2cca70b79cdfc057d4fbd0d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* xcb: Reflect geometry of foreign window on creationTor Arne Vestbø2023-09-121-2/+0
| | | | | | Pick-to: 6.6 Change-Id: I305b256696a32454f64c12c5a8901b65506fc520 Reviewed-by: Liang Qi <liang.qi@qt.io>
* xcb: Implement native window helper for embeddedwindows/foreign window testTor Arne Vestbø2023-09-122-2/+9
| | | | | | Pick-to: 6.6 Change-Id: I73720f8f49a5d7e5df7c95bf4b17ef910180e01c Reviewed-by: Liang Qi <liang.qi@qt.io>
* Deprecate Q_ASSUME()Thiago Macieira2023-08-141-2/+2
| | | | | | | | | | | | | | | | | | | | We've known for a long time that this is producing worse code with GCC because of how we implemented in Q_ASSUME_IMPL(). So bite the bullet and actually deprecate the macro, replacing all extant Q_ASSUME() with Q_ASSERT(). The replacement is in C++23. Backporting the support onto Q_ASSUME_IMPL was previously rejected by reviewers. [ChangeLog][Deprecation Notice] The Q_ASSUME() macro is deprecated. This macro has different side-effects depending on the compiler used (GCC compared to Clang and MSVC), and there are certain conditions under which GCC is known to produce worse code than if the macro was absent. To give a hint to the compiler for optimizations, use the C++23 [[assume]] attribute. Change-Id: I80612a7d275c41f1baf0fffd177a3a4ad819fb2d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* tst_foreignwindow: Add basic test of foreign window reparentingTor Arne Vestbø2023-08-071-0/+19
| | | | | | Pick-to: 6.6 Change-Id: I008fad0f6527503a13ded4818eec5cb280f65cf4 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* tests: Move NativeWindow helper class to shared headerTor Arne Vestbø2023-08-031-108/+1
| | | | | | | Pick-to: 6.6 Change-Id: Ia7dc54aa761fdfde42d49a41475a4fbc74036aeb Reviewed-by: Christian Strømme <christian.stromme@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* tst_foreignwindow: Run test with high-DPI disabledTor Arne Vestbø2023-08-021-0/+1
| | | | | | | | | | To avoid having to take high-DPI scaling into account for geometry calculations/comparisons. Pick-to: 6.6 Change-Id: I941b74781264455b70520df8d1e6e91592e00310 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Enable Objective-C++ language for standalone test projectsTor Arne Vestbø2023-08-011-0/+1
| | | | | | | | Amends 8450ab8dec83f075ee028f35b3035c9478fa13ce. Task-number: QTBUG-93020 Change-Id: Ied86754dbcd216a73cc77135c2c45303463d28d2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Android: temporarily skip tst_qprinterinfo, tst_qwidget and tst_qwindowAssam Boudjelthia2023-07-261-0/+4
| | | | | | | | | | | Those tests often fail on Android 13 on RHEL 8.6 and 8.8. This patch skips them to unblock CI while the underlying reasons are investigated and fixed. Task-number: QTQAINFRA-5606 Change-Id: If088d69c2160470ef50b2e74cd9b9399451c526d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* CMake: Make gui tests standalone projectsAlexandru Croitor2023-07-051-0/+6
| | | | | | | | | | | | | | | | | Add the boilerplate standalone test prelude to each test, so that they can be opened with an IDE without the qt-cmake-standalone-test script, but directly with qt-cmake or cmake. Boilerplate was added using the following scripts: https://git.qt.io/alcroito/cmake_refactor Manual adjustments were made where the code was inserted in the wrong location. Task-number: QTBUG-93020 Change-Id: I2ef59684cf297a0222a136ce7b5630037294d000 Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* tests: skip tst_QWindow::enterLeaveOnWindowShowHide() on WaylandLiang Qi2023-06-271-0/+3
| | | | | | | | This amends 79ac43053798763828d51c79f6368465b1db1c87. Pick-to: 6.6 Change-Id: Id68daff20de11361a1bb20071266e8adafe5e9c4 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add a test case for an invalid min/max size pairInho Lee2023-06-271-0/+7
| | | | | | | Task-number: QTBUG-113233 Pick-to: 6.6 6.5 Change-Id: Iad3f2f5d98637dbbe2ad6b23027ffdd942fb05d3 Reviewed-by: Liang Qi <liang.qi@qt.io>
* QWindow test: Blacklist enterLeaveOnWindowShowHideVolker Hilsheimer2023-05-251-0/+2
| | | | | | | | | | | | | This test fails too frequently on Android and RHEL to leave in as significant. The bug report is already closed after timeouts were extended, so perhaps we just have to accept the status quo. No point in keeping tickets open for tests that we can't get stable on some platforms. Pick-to: 6.5 Task-number: QTBUG-102239 Change-Id: I54b8ae821e93b3e1f24acd67a2e84ef405388667 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Test for QWindow getting enter/leave events when secondary window shows/hidesVolker Hilsheimer2023-04-142-0/+85
| | | | | | | | | | | | Equivalent to the test added to the QWidget test case, but since QtWidgets code contains logic to both synthesize and compress/filter enter/leave events, we can only verify that the QWindow does get the events. The test is very flaky on Windows, so blacklisting it right away. Change-Id: Ic1da9439f60f619a76a3653a23fef8e9ebc0e75d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Use LANGUAGE OBJCXX rather than COMPILE_FLAGS "-x objective-c++"Tor Arne Vestbø2023-04-131-1/+1
| | | | | | | | | | | | | We sometimes use Objective-C++ code in files with a .cpp extension, to avoid the churn of adding a foo_mac.mm file. Instead of manually telling the compiler to build these files in Objective-C++ mode, we use CMake's intended mechanism, which means genex constructs such as $<$<COMPILE_LANGUAGE:OBJCXX> will work for these files as well. Pick-to: 6.5 6.2 Change-Id: If295c3f34f6bee9f4d9f877f519c9c7770665fee Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Pick up initial state of foreign windows instead of reflecting QWindowTor Arne Vestbø2023-03-281-0/+57
| | | | | | | | | | | | | | A foreign window can be used both for embedding a Qt window into a native window hierarchy, or for embedding a native window into a Qt window hierarchy. In the former case, we should not modify the foreign window in any way. Since the platform does not know anything about the intended use case at the time of the foreign window creation, it should avoid modifying the foreign window in any way, and should instead pick up the foreign window state and reflect that through QWindow. Pick-to: 6.5 Change-Id: Id2e39d101277ecebd656d615cea3e7f734a4b0a6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add basic test for QWindow foreign windowsTor Arne Vestbø2023-03-162-0/+137
| | | | | | | Only implemented on macOS and Windows for now. Change-Id: Ib6330bc7024453d23675c1770367e8da6c4c9a34 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* tests: Remove remains of qmake conversion from CMakeLists.txt filesFriedemann Kleint2023-02-171-2/+0
| | | | | | | Pick-to: 6.5 Change-Id: I8d106554bb86ac1ec9bb7a4083de4c376bcbab1d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* emit QWindow::windowStateChanged only when state has changedAxel Spoerl2022-11-111-0/+98
| | | | | | | | | | | | | | | | | Upon programmatic window state changes, windowStateChange was fired once in QWindow::setWindowStates and once when the visual state had been changed by the window interface. This patch adds if guards to ensure that the singal is fired only once. It adds a corresponding autotest to tst_QWindow. tst_QWidget::resizePropagation() is adapted to no longer expect double signal emission. Fixes: QTBUG-102478 Pick-to: 6.4 6.2 Change-Id: If093c0a883d76d8a676e4fab90db6b0676452267 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Port from container::count() and length() to size() - V5Marc Mutz2022-11-031-28/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8, but extended to handle typedefs and accesses through pointers, too: const std::string o = "object"; auto hasTypeIgnoringPointer = [](auto type) { return anyOf(hasType(type), hasType(pointsTo(type))); }; auto derivedFromAnyOfClasses = [&](ArrayRef<StringRef> classes) { auto exprOfDeclaredType = [&](auto decl) { return expr(hasTypeIgnoringPointer(hasUnqualifiedDesugaredType(recordType(hasDeclaration(decl))))).bind(o); }; return exprOfDeclaredType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes)))); }; auto renameMethod = [&] (ArrayRef<StringRef> classes, StringRef from, StringRef to) { return makeRule(cxxMemberCallExpr(on(derivedFromAnyOfClasses(classes)), callee(cxxMethodDecl(hasName(from), parameterCountIs(0)))), changeTo(cat(access(o, cat(to)), "()")), cat("use '", to, "' instead of '", from, "'")); }; renameMethod(<classes>, "count", "size"); renameMethod(<classes>, "length", "size"); except that the on() matcher has been replaced by one that doesn't ignoreParens(). a.k.a qt-port-to-std-compatible-api V5 with config Scope: 'Container'. Added two NOLINTNEXTLINEs in tst_qbitarray and tst_qcontiguouscache, to avoid porting calls that explicitly test count(). Change-Id: Icfb8808c2ff4a30187e9935a51cad26987451c22 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Allow programmatic closing of windows that are modally blockedVolker Hilsheimer2022-10-121-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | In Qt 6, after changes such as 121fddcf5ae2ab238ef802e44b45ce62c56015f5, we go through the QPA layer to close widget windows properly. Closing and hiding of windows is now done in when we receive and handle the window system's CloseEvent. Such an event to a modally blocked window should be blocked, so that users can't close a modally blocked window. However, if the event is the result of a call to QWindow::close, then it should not be blocked. Luckily, we know that the event is the result of such a call, so let such events through. This restores compatibility with Qt 5, where it was possible to first open a new dialog, and then close the previous dialog. Add a test case. Fixes: QTBUG-107188 Pick-to: 6.4 6.2 Change-Id: Id812c1fc36aa0e1a10dfb8d3a16a11d387289b05 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-111-1/+1
| | | | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace, with manual unstaging of the actual definition and documentation in dist/, src/corelib/doc/ and src/corelib/global/. Task-number: QTBUG-99313 Change-Id: I4c7114444a325ad4e62d0fcbfd347d2bbfb21541 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Port from container.count()/length() to size()Marc Mutz2022-10-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is semantic patch using ClangTidyTransformator: auto QtContainerClass = expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o) makeRule(cxxMemberCallExpr(on(QtContainerClass), callee(cxxMethodDecl(hasAnyName({"count", "length"), parameterCountIs(0))))), changeTo(cat(access(o, cat("size"), "()"))), cat("use 'size()' instead of 'count()/length()'")) a.k.a qt-port-to-std-compatible-api with config Scope: 'Container'. <classes> are: // sequential: "QByteArray", "QList", "QQueue", "QStack", "QString", "QVarLengthArray", "QVector", // associative: "QHash", "QMultiHash", "QMap", "QMultiMap", "QSet", // Qt has no QMultiSet Change-Id: Ibe8837be96e8d30d1846881ecd65180c1bc459af Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix tst_QWindow::requestUpdate on WaylandEskil Abrahamsen Blomfeldt2022-09-051-7/+9
| | | | | | | | | | | | | | | | | | | | On Wayland there is a special case when decorations are enabled, where we post an initial update request to ensure widgets are redrawn after the buffer is recreated (see af7b60ade5c4be81cbc58eb18307c017d5594071 in qtwayland). To make sure the test behaves the same on Wayland as on other platforms, we disable client-side decorations when running these tests. The flag is primarily required for the requestUpdate() test at the moment, but it is only queried once per application run, so it has to be set before any tests are run. Pick-to: 6.4 Fixes: QTBUG-100889 Change-Id: Ica6d744083ecae4a3722b6d04b956e7615f0dfe5 Reviewed-by: Inho Lee <inho.lee@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Wayland: Skip test that queries window positionEskil Abrahamsen Blomfeldt2022-08-251-2/+3
| | | | | | | | | | The client does not know its global window position on Wayland, so testing for this will not work. Pick-to: 6.4 Fixes: QTBUG-100888 Change-Id: Ibdfc84f1b33d25223dbd740603ce4783c21afc70 Reviewed-by: Inho Lee <inho.lee@qt.io>
* Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-231-1/+1
| | | | | | | Task-number: QTBUG-105718 Change-Id: I5d3ef70a31235868b9be6cb479b7621bf2a8ba39 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Wayland: Remove XFAIL after underlying bug was fixedEskil Abrahamsen Blomfeldt2022-08-091-2/+0
| | | | | | | | | | The intialSize bug has been fixed in Qt Wayland Client, and thus this test will now start XPASSing. Pick-to: 6.4 Task-number: QTBUG-66818 Change-Id: I4b9cb8bd9306a67f04295eb23f09574dad0e97f7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Add license headers to cmake filesLucie Gérard2022-08-031-0/+3
| | | | | | | | | | | | CMakeLists.txt and .cmake files of significant size (more than 2 lines according to our check in tst_license.pl) now have the copyright and license header. Existing copyright statements remain intact Task-number: QTBUG-88621 Change-Id: I3b98cdc55ead806ec81ce09af9271f9b95af97fa Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* CMake: Don't use PUBLIC_LIBRARIES for tests and test helpersAlexandru Croitor2022-07-281-2/+2
| | | | | Change-Id: I9b7404e1d3a78fe0726ec0f5ce1461f6c209e90d Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Fix test being flaky on LinuxDimitrios Apostolou2022-07-262-7/+1
| | | | | | | | | | | | The cause is that the first EXPOSE event comes with the window not having focus yet. See QTBUG-105177. Also remove processEvents() as events are always processed when doing qWaitFor...(). Task-number: QTBUG-105177 Change-Id: I2260d1885388bbf7091c423bc9b4c16e2ed0090f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Test fails always on Android, so skip itDimitrios Apostolou2022-07-261-0/+3
| | | | | | | | | Previously the failure was been ignored because of the very generic "linux" entry in the BLACKLIST file Task-number: QTBUG-105201 Change-Id: I6914fe350f78266fc18541eb8fcd881f5a4ac511 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Do not use QExposedEvent::region() in internal codeIvan Solovev2022-07-131-23/+0
| | | | | | | Task-number: QTBUG-104857 Pick-to: 6.4 6.3 6.2 Change-Id: I5ee41802ecc4d6291aaaa1f0efddd20027c1c1e4 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* tst_qwindow: modify some abnormal touch testsTang Haixiang2022-07-051-39/+39
| | | | | | | | | | | | Under normal circumstances, when the second point is touched, the first point has not been released, and the message at this time should contain two touch points. We are simulating the case where the message is lost when the popup is closed by touch. Amends efc02f9cc301f98c77079adae026ffd07f50d5ab Pick-to: 6.4 6.3 6.2 Change-Id: Ic722e3dbd615c46076ede26611d0107501c5e274 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Update window geometry when QWindow::m{in|ax}imumSize is updatedJan Arve Sæther2022-06-131-0/+11
| | | | | | | | | | | | | | | | | | | | More specifically, if either minimum or maximum size are updated, make sure that the current window geometry is updated so that it is within the minimum and maximum sizes. Previously, these constraints was only respected by the window manager when the user resized the window. For widgets this already worked, because a top-level widget will take care of respecting these constraints if they are changed. Since QWindow::setMinimumSize and QWindow::setMaximumSize started to share so many common things, a new function (setMinOrMaxSize_helper()) is added. Task-number: QTBUG-102771 Change-Id: Ia4b2680dcf865f84a3cf6424187f9a6036b76386 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* xcb: Delete touch points without target windowsTang Haixiang2022-05-201-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | When XCB_INPUT_TOUCH_BEGIN closes a popup, we then receive XCB_INPUT_TOUCH_END, and cannot find a target window (because it's destroyed). If we don't deliver it, we need to at least clear the stored point from QPointingDevicePrivate::activePoints. Then when we deliver the next touch press, m_fakeMouseSourcePointId also needs to be reset. It's now even more paramount that autotests (and real-world touchscreens) must never omit any active touchpoint from a touch event. If a point doesn't move, it must be included in the QTouchEvent, with Stationary state. If not, QGuiApp::processTouchEvent() could generate multiple TouchBegin events in a row, which gets other bits of logic confused, here and there. Fixes: QTBUG-94557 Fixes: QTBUG-98519 Fixes: QTBUG-102751 Fixes: QTBUG-103706 Pick-to: 6.2 6.3 5.15 Change-Id: Ia95e410a2bb8bc7784aa5d296fac2b89e53a9f55 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-161-27/+2
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* tests: XFAIL 4 tests in tst_QWindow on WaylandLiang Qi2022-02-171-10/+9
| | | | | | | | | | Task-number: QTBUG-66818 Task-number: QTBUG-100887 Task-number: QTBUG-100888 Task-number: QTBUG-100889 Pick-to: 6.3 6.2 Change-Id: I05ba11e54c115380bbbb629fcba5cdd658dd5654 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Blacklist tst_QWindow::modalWindowEnterEventOnHide_QTBUG35109 for WinOliver Wolff2022-01-311-1/+1
| | | | | | | | | The test also fails on Windows 11 Pick-to: 6.2 6.3 Task-number: QTBUG-98475 Change-Id: Iab079587d743500d222f2272d1145424e079b4a3 Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>