summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Correct license for module and plugin filesHEADdevLucie Gérard3 days6-6/+6
| | | | | | | | | | | | | | | | | According to QUIP-18 [1], all module and plugin files should be LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only or LicenseRef-Qt-Commercial OR GPL-3.0-only Also, LGPL and non LGPL should not be mixed in a given directory [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: I7ea516b58210764939923fa09ea2ff05c48f5fd2 Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Change license for tools filesLucie Gérard3 days1-1/+1
| | | | | | | | | | | | According to QUIP-18 [1], all tools files should be LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: I9a08423046dd325dd267d2390faf8d2eb0c76315 Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot3 days1-3/+3
| | | | | Change-Id: Icc406b5948c8e3ba2a9005c24622f879ed02d2ca Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot4 days1-3/+3
| | | | | Change-Id: I71968a7e5b85d37955099eefea8a3a0b6f86e152 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Make wheel operations compatible with xcbInho Lee6 days1-2/+4
| | | | | | | | | | On xcb, Alt modifier makes wheel operations horizontal. Fixes: QTBUG-124807 Pick-to: 6.7 6.5 Change-Id: I98cfe14b4df91169a5ff4e777ebe954087747e17 Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qtwaylandscanner: don't track source file locationSamuli Piippo7 days1-1/+1
| | | | | | | | | | | Generate source code without information about original location of the source file. Useful for reproducible builds. Task-number: QTBUG-105926 Task-number: QTBUG-105913 Change-Id: I5f9b3f90e6e85c772a92425e7b796a9d63c3c713 Reviewed-by: Ari Parkkila <ari.parkkila@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot7 days1-3/+3
| | | | | Change-Id: Ief7478a05adffd47136c5dbf60cc14525eb230f4 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QWaylandWindow: requestActivate on showKai Uwe Broulik10 days4-0/+17
| | | | | | | | | | | | | | For simplicitly, a Wayland compositor typically activates a window when it is mapped. However, it does not necessarily have to and might not want to in order to prevent stealing focus. Inttroduce a requestActivateOnShow() on the shell which is called when showing a window and, in case of XDG Shell, will explicitly request activation (unless Qt::WA_ShowWithoutActivating is set) and make use of the existing XDG Activation infrastructure. Change-Id: I69ab5f2cee4540d5baefa5a266f22dbb165e4192 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot11 days1-3/+3
| | | | | Change-Id: I33c90c10878036072f173b08106b2220557cb5ae Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* client: implement QWaylandScreen::topLevelAt()Liang Qi2024-04-222-0/+12
| | | | | | | | | | For security reason, Wayland doesn't provide global position for top level windows in most cases. Task-number: QTBUG-113404 Pick-to: 6.7 6.5 6.2 5.15 Change-Id: I2cd11b641fba6582cf96cfbea16f5e598a473db5 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* client: Synthesize enter/leave event for popup in xdg-shell - 2Liang Qi2024-04-221-5/+3
| | | | | | | | | | | | | | | | | This amends 73d35d3117722cef8e94f0d2036c56ad0a5ddae9. We can't depend on QGuiApplication::topLevelAt(). For security reason, Wayland doesn't provide global position for top level windows in most cases. We just synthesize enter/leave event for popup between it and the parent. Task-number: QTBUG-100148 Task-number: QTBUG-113404 Pick-to: 6.7 6.5 6.2 5.15 Change-Id: I9de1d413cdbc43486c1a110df4517750983e4fda Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2024-04-191-3/+3
| | | | | Change-Id: Ic601a81ed5368f4663c0441ec0b50b96be6a7c46 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* compositor: fix build without quick - xdg_dialog_v1Liang Qi2024-04-181-1/+1
| | | | | | | This amends 0417a5f34a327be44a50b5164266b9f607776461 . Change-Id: I3e24a138246c2333196296048709e329873d6134 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Make build error less ambiguousEskil Abrahamsen Blomfeldt2024-04-181-1/+1
| | | | | | | | | | | | | The phrasing of the error message caused some confusion when people thought it indicated that QtGui itself was missing from the build. This tries to make it very explicit that it is the wayland-feature which is missing and not QtGui itself. Pick-to: 6.7 Task-number: QTBUG-123489 Change-Id: I8dcdf8bdbb05a379dea3021cec8bf8e7036d55dc Reviewed-by: David Redondo <qt@david-redondo.de> Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
* Client: Wire up surfaceRoleCreated/Destroyed signalsKai Uwe Broulik2024-04-171-0/+3
| | | | | | | Emit them after creating or destroying the shell surface. Change-Id: Ied54933ca0f0aec25cc288f7cfe191c85b37f543 Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2024-04-171-3/+3
| | | | | Change-Id: I1ab1592195bbc40f38a659e7e66eb70d70939549 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* client: Add CMake options to control visibility of generated symbolsDavid Redondo2024-04-152-3/+22
| | | | | | | | | | | | | | | | | Using public-code by default is problematic if multiple libraries contain wayland interface definitions generated with public-code which exports the symbols of the interface definitions from the library. If not all libraries are build against the same protocol version and the symbol is resolved to a version generated from an older version of the protocol, then libwayland will detect a protocol error if a request or event from the newer version is used. This introduces two new options PRIVATE_CODE and PUBLIC_CODE to qt6_generate_wayland_protocol_client_sources which correspond to the wayland-scanner options. For backwards compatibility PUBLIC_CODE is the default. Change-Id: Ia30ec4b83419962b768207d7353c495e11b0268e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* ShellSurfaceItem: Make sure modal dialogs stay on topPaul Olav Tvete2024-04-121-5/+28
| | | | | | | | | | | | Use the new modal property from ShellSurface, and treat modal dialogs as StaysOnTop. [ChangeLog][QtWaylandCompositor] ShellSurfaceItem will keep modal dialogs on top of other surfaces when using XdgShell. Fixes: QTBUG-118813 Change-Id: Iaa0ca411dc4fec740e0fbe1db523b16b028c4c29 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* compositor: Implement xdg_dialog_v1Paul Olav Tvete2024-04-1212-15/+267
| | | | | | | | | | | Implement xdg_dialog_v1 on the compositor side. This adds a new properties in the QML API: XdgToplevel::modal ShellSurface::modal Task-number: QTBUG-90005 Change-Id: Ie80358bc59c3dabc6e841b65d193c8ca56bacde3 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Revert "Make Qt::Gui as a required module"Inho Lee2024-04-121-1/+5
| | | | | | | | | | | | This reverts commit 9848b60e684ba2fcddff8218d893f45166a34639. Reason for revert: QTBUG-123489's root cause might not be here. The log shows Qt6Gui exists but build tools cannot find it. It will be fixed with another patch. Pick-to: 6.7 6.6 6.5 Task-number: QTBUG-123489 Fixes: QTBUG-124304 Change-Id: I3313bdcb971bd480c92b3f0946610b4130396c58 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Revert "QWaylandDisplay: Allow software-only deco and don't init GL needlessly"Eskil Abrahamsen Blomfeldt2024-04-111-6/+1
| | | | | | | | | | | | | | | This reverts commit 3652666c559382f6d575fa4102e132b71a58785f. This optimization causes flakiness in the xdgdecorationv1 test, possibly because it no longer handles the case where the supportsWindowDecoration() function is called before the buffer integration is initialized. So it unfortunately has to be reverted until a better approach can be figured out. Fixes: QTBUG-124259 Change-Id: I05f13a51b22b6779bffba531f08ebfd17a9afb38 Reviewed-by: David Redondo <qt@david-redondo.de>
* Fix out variable in external shaderBernd Weimer2024-04-111-3/+3
| | | | | | | | Output variable gl_FragColor wasn't declared due to a copy-paste error. Pick-to: 6.7 6.6 6.5 Change-Id: I0732953143d9a2315d430e57d8e1a92cca87f542 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Remove unused member in quickitemBernd Weimer2024-04-111-14/+13
| | | | | Change-Id: I5543ace14dbc854e2122c9b31189701cf025df3b Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Correct executable name in server-buffer testBernd Weimer2024-04-111-1/+1
| | | | | Change-Id: I9fb321000f4ac33f67fc79a88b20707af4504614 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Client: Close xdg popups using QWSI::handleCloseEvent()Vlad Zahorodnii2024-04-051-1/+1
| | | | | | | | | This shouldn't matter in practice, the main motivation behind this change is to make window closing code consistent both for xdg-toplevels and xdg-popups. Change-Id: I74ef11ddbaf942cb545bb04baf7b35979adde81c Reviewed-by: David Redondo <qt@david-redondo.de>
* Fix xkbcommon dependency for WaylandSeat.sendUnicodeKeyEventInho Lee2024-04-051-5/+4
| | | | | | | | | | | Amends c0d108b5042752359c279b41cc6f055f4f18ec60. Unicode conversions will be done without using QXkbCommon. Pick-to: 6.7 Change-Id: I9d9f94b799179f82912bd1be54431e460c37b363 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Client: Use QWindowSystemInterface::handleCloseEvent() to close xdg-toplevelVlad Zahorodnii2024-04-051-1/+1
| | | | | | | | | | | | QWindow::close() will close a window regardless whether it's blocked by a modal dialog. On the other hand, QWindowSystemInterface::handleCloseEvent() will do nothing if a close event is sent to an xdg-toplevel window with a modal dialog. Pick-to: 6.7 Change-Id: I5f18d38d4fdbb5748687ee3537035172df916de9 Reviewed-by: Kai Uwe Broulik <kde@privat.broulik.de> Reviewed-by: David Redondo <qt@david-redondo.de>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2024-04-051-3/+3
| | | | | Change-Id: I5a3eb90b2b79cd26302d37217eeee7b2ab3af84c Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Correct license for test filesLucie Gérard2024-04-04106-106/+106
| | | | | | | | | | | According to QUIP-18 [1], all test files should be LicenseRef-Qt-Commercial OR GPL-3.0-only [1]: https://contribute.qt-project.org/quips/18 Task-number: QTBUG-121787 Change-Id: I35b93ca5f2fd27685eda4aafda48c24925c0c56f Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Correct license for examples filesLucie Gérard2024-04-0418-18/+18
| | | | | | | | | | | | | Example takes precedence over build system file type. According to QUIP-18 [1], all examples file should be LicenseRef-Qt-Commercial OR BSD-3-Clause [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: I4f07260d6121ca3f95d12ca399f3301d97d33f52 Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Correct license for build system filesLucie Gérard2024-04-041-1/+1
| | | | | | | | | | | | | Assuming files in config.tests are build system files. According to QUIP-18 [1], all build system files should be BSD-3-Clause [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: Ia0d04407a0c7f5ac89135d7ab89e35fe6f2d377b Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* QWaylandDisplay: Allow software-only deco and don't init GL needlesslyKai Uwe Broulik2024-04-021-1/+6
| | | | | | | | | | | | Don't initialize the client buffer integration just to check whether it can do a decoration. If we had a GL window, it would have initialized GL already. Also, we can do software-rendered decorations nowadays, only disable them if the integration explicitly says it can't. Change-Id: I396d32796a10ccffd6ef3bb0c5eaa3a1078b8d79 Reviewed-by: Ilya Fedin <fedin-ilja2010@ya.ru> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Client: Replace a bunch of frameMargins with clientSideMarginsIlya Fedin2024-03-293-5/+5
| | | | | | | | | | | Use it wherever window coordinates should be translated to surface coordinates This also fixes the usage of QWindow::mapFromGlobal which is in wrong coordinate space while handling CSD dragging from pending touch points Change-Id: I66b114610f0e44fea10535594adb5d1284196662 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* client: Implement dialog-v1 protocolDavid Redondo2024-03-2713-5/+363
| | | | | | | | Allows to mark windows as modal dialogs. Change-Id: Ie4999552933e02fc473e621e7cc5e3f2928c0adb Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Bradient: make drawing coordiantes consistentIlya Fedin2024-03-261-24/+26
| | | | | | | | | | | | Currently some parts of the decoration use surface size (window icon, window controls) while other parts use window content geometry. As backing store paints it from the start of the surface, use surface size everywhere. This is visible when setting custom margins. Change-Id: I22a84fd35bd6e088c30ea265d8cb4af86f14e1a5 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2024-03-251-3/+3
| | | | | Change-Id: I62e2e780257ca6cb6fe9b5d69adb7c506924600c Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Use NO_GENERATE_CPP_EXPORTS explicitlyAlexey Edelev2024-03-2512-1/+16
| | | | | | | | | | Use NO_GENERATE_CPP_EXPORTS explicitly for modules that don't need the autogenerated exports header file. Task-number: QTBUG-90492 Change-Id: I3494ac88e136126265e14ef1a380c5ef26def3ef Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Make Qt::Gui as a required moduleInho Lee2024-03-221-5/+1
| | | | | | | | | A module Qt::Gui should not be an optional Fixes: QTBUG-123489 Pick-to: 6.7 6.6 6.5 Change-Id: I7f4129b37aa39e41cd4ce6dfc267fcf916f3ddbc Reviewed-by: David Redondo <qt@david-redondo.de>
* Use static_cast rather than dynamic_castLu YaNing2024-03-211-2/+2
| | | | | | | | | | | To avoid RTTI. When I tried to implement the reconnect function in Plasma5, I found that the application would have a dynamic_cast crash problem. Referring to other usage logic and suggestions in Qt, it is recommended to avoid using dynamic_cast. Change-Id: I4fd41846c3215f60aafc7e38d1542d52ec6759b8 Reviewed-by: David Redondo <qt@david-redondo.de>
* Client: Fix the mouse being stuck in pressed state after ↵Ilya Fedin2024-03-203-5/+17
| | | | | | | | | startSystem{Move,Resize} Fixes: QTBUG-97037 Pick-to: 6.7 Change-Id: I812c25b98909f9ff05ffca122e7201665023172e Reviewed-by: David Edmundson <davidedmundson@kde.org>
* scanner: Make it work with mismatching protocol and file nameDavid Redondo2024-03-201-8/+11
| | | | | | | | | | | The names of the files that wayland-scanner generates are based on the protocol file name not the protocol name that is defined in the xml. When those two mismatch qtwaylandscanner would generate code that fails to build. Pick-to: 6.7 Change-Id: Ieecd7a122177530ab1ff890367ce53809a8bb7b9 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* client: Roundtrip in an own queue when exporting window instead of default queueDavid Redondo2024-03-203-9/+11
| | | | | | | | This way no other events will be dispatched which could cause calls into user code when delivering events synchronously. Change-Id: I5c195877388d178832067b5aba6b5f5abd26e099 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Add GNOME-like client-side decoration pluginJan Grulich2024-03-1910-0/+985
| | | | | | | | | | | | | | | | | Adds a client-side decoration plugin implementing GNOME's Adwaita style. This is trying to follow GTK4 Adwaita style, using xdg-desktop-portal to get user's configuration in order to get whether a light or dark colors should be used and to get the titlebar button layout. This plugin is now used on GNOME by default, while defaulting to the original behavior for non-GNOME DEs. It depends on QtSvg used to draw titlebar buttons so in case QtSvg is not found, this plugin will not be build. [ChangeLog][QtWaylandClient][Added GNOME-like client-side decoration plugin] Fixes: QTBUG-120070 Change-Id: I0f1777c4e0aa3467dafbbae8004b594cc82f9aa0 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* TextInputv3: use a serial for each resourceInho Lee2024-03-193-16/+9
| | | | | | | | | | | Each zwp_text_input_v3 object should have their own serial number and it will not be cleared on the same object. Pick-to: 6.7 Change-Id: I779c2ae07f1dab1ae4a7d87e4e183ce33ec804fe Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Weng Xuetian <wengxt@gmail.com>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2024-03-171-2/+2
| | | | | Change-Id: I56b30af096edd00c69e2e756feedeeb5a9926ea2 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2024-03-161-2/+2
| | | | | Change-Id: I78471b8e2fbdee1bd7520175c0eda12f28078afe Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2024-03-141-2/+2
| | | | | Change-Id: I298d25764e30e32ed86b7bb86107089745c5a52f Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* client: Only use viewport when fractional scaling is in useDavid Edmundson2024-03-141-1/+3
| | | | | | | | | | | | | | | | | Either viewport or wl_buffer.set_scale can be used to notify the compositor that the client has scaled it's contents, with viewport being more flexible and a requirement for fractional scaling. Unfortunately Gnome before 36 announces viewport support, but it does not work correctly. This patch workarounds that by only using the viewporter when we're using fractional scaling otherwise continue using the legacy path. Fixes: QTBUG-122412 Pick-to: 6.7 6.6 Change-Id: I9a01d9456ce91735051f8f53fb4b72add6961fcb Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: David Redondo <qt@david-redondo.de>
* client: don't cache one type in QWaylandMimeDataLiang Qi2024-03-131-1/+8
| | | | | | | | | | "application/vnd.portal.filetransfer", which is only valid for one time use. Fixes: QTBUG-107858 Pick-to: 6.7 6.6 6.5 6.2 5.15 Change-Id: I094de22ea0bb9b3577572e6c57ebe42cdc8c7b41 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* client: use current modifiers in repeat keysLiang Qi2024-03-102-8/+5
| | | | | | | | | This amends 35880c7e1021a379e3cdd4005edd53472b63856c . Fixes: QTBUG-123007 Pick-to: 6.7 6.6 6.5 6.2 5.15 Change-Id: I3b4e5d4a8304fd57558eec3897562895c294aadd Reviewed-by: David Edmundson <davidedmundson@kde.org>