summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Mark the module free of qAsConst()Marc Mutz2022-12-051-0/+1
| | | | | Change-Id: I914ccc09297ac6283d7cf24d5afc96ebdaf294d0 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-12-051-2/+2
| | | | | Change-Id: Ibb1917502b7792eac1e1b84e8488da5096129a20 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Client: Improve handling of 0xH and Wx0 xdg_toplevel configure eventsVlad Zahorodnii2022-12-054-9/+59
| | | | | | | | | The compositor can send a configure event with 0xH and Wx0 when it wants the window to have some concrete size along one dimension but wants the client to pick the size along the other dimension. Change-Id: I2e72017d4a71b19a930da24fa5c58b6ce672fb94 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* client: Allow resizing with touch input on client-side decorationsEskil Abrahamsen Blomfeldt2022-12-051-37/+80
| | | | | | | | | | | | | | | | | | The touch input for client-side decorations had its own handling which only processed button clicks and moves. This meant that it was impossible to resize windows using touch events. This generalizes the mouse input code path and uses it for touch as well. We need to take care not to update any mouse state in the case of touch, since we only care about touch press events, so we pass in a PointerType and disable parts of the code path when the input is from a touch device. [ChangeLog][QtWaylandClient] Enable resizing windows using client-side decorations with touch input as well as mouse input. Task-number: QTBUG-108690 Change-Id: I761ebb0c7c4844c52f793caa74e8606d1593757f Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Fix frame sync related to unprotected multithread accessWeng Xuetian2022-12-032-32/+43
| | | | | | | | | | | | | | There is a few crashes happens in real life that frame callback is double-free'd and hit an assertion in wayland-client. e.g. https://bugs.kde.org/show_bug.cgi?id=450003 This is due to the WaylandEventThread and calls to QWaylandWindow::reset may free and unset the mFrameCallback at the same time. mFrameSyncMutex should be used to protect such access. Pick-to: 6.4 Change-Id: Ie01d08d07a2f10f70606ed1935caac09cb4f0382 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Client: Honor QGuiApplication::overrideCursor()Vlad Zahorodnii2022-11-301-1/+4
| | | | | | | | | | | If there's a QGuiApplication::overrideCursor(), QWindow::cursor() can still return a different cursor. This can result in a wrong cursor when the pointer enters a window. Pick-to: 6.4 6.2 5.15 Fixes: QTBUG-75919 Change-Id: I015117b4b6d252b421ab14bd8f2a8f582f7cae52 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-11-291-1/+1
| | | | | Change-Id: Idd122988e3156f7e244875d0002e5ede2d307972 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-11-261-2/+2
| | | | | Change-Id: I24645a84eec8e13f726f4c608fed299bc701b8e5 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-11-251-2/+2
| | | | | Change-Id: Ia7a92020b3793006197088ddbba06a7a1a61e952 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Improve examplesBernd Weimer2022-11-2523-104/+124
| | | | | | | | | Updated signal handlers to new syntax to reduce noise (warnings). Allowed to build examples with subfolders in one step, updated from deprecated WlShell to XdgShell, etc. Change-Id: If821363ffd1b38ea1d152f5a044b0609cf739014 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Client: Bump wl_output versionVlad Zahorodnii2022-11-221-1/+1
| | | | | | | wl_output_release is available starting with wl_output v3. Change-Id: I21822b26728ffb9318f1f8b4bd82ef7329682838 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Client: Call wl_output_release() upon QWaylandScreen destructionVlad Zahorodnii2022-11-221-0/+2
| | | | | | | It ensures that the proxy gets destroyed. Change-Id: I915cc8814e33dd3b0405b2bf82bd12ce6b5f785b Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Client: Add F_SEAL_SHRINK seal to shm backing fileVlad Zahorodnii2022-11-181-1/+7
| | | | | | | | | | This lets libwayland-server avoid installing a SIGBUS handler when it wants to mmap() the backing file and access the contents of shared memory client buffers. Change-Id: Id0b17f729799535d73e8700c5a99c32fd88a068a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-11-171-2/+2
| | | | | Change-Id: Ie3930d1958c3ee7059f74b6c02162766aab49f13 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-11-161-2/+2
| | | | | Change-Id: Iaf6a7d987600d1117d0ad5f7b9d289ba249cc386 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-11-141-2/+2
| | | | | Change-Id: Ie3ed92833842dc97f31dea806cddd45732d3b604 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Test: update MockClientInho Lee2022-11-102-1/+15
| | | | | | | | | add name and description functions in order to suppress warnings. This amends f1e71327d462d2dae0b46677bbc478afb0d1b2f7 . Change-Id: I0f638802773ce3da4574683e0783ec7405e7c0dc Reviewed-by: Liang Qi <liang.qi@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-11-091-2/+2
| | | | | Change-Id: I79f1e4fe263b2b5cd03f70565632a4ea6cfaddc8 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* tests: fix tst_seatv4 to use 24 as default cursor sizeLiang Qi2022-11-082-3/+10
| | | | | | | | | | | | Also set default cursor size to 24 for client, which is correct both on KDE and GNOME at least. Fixes: QTBUG-104259 Pick-to: 6.4 6.2 5.15 Change-Id: Ie4ba27695974025b093a86d8c96fb23d25ad23f7 Reviewed-by: Inho Lee <inho.lee@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Remove uneeded forceRoundTrip on XdgOutputManagerDavid Edmundson2022-11-081-1/+0
| | | | | | | | | | In the first rountrip we will get all wl_outputs and the xdg_output_manager. Therefore we know we will have called wl_output.bind and xdg_output_manager_get_output by the time we hit the second roundtrip on startup. Change-Id: I69f911c13f9bcdfb59b04eceea4bcca778e7755c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-11-081-2/+2
| | | | | Change-Id: Id7345d7557b9782019e42726589ad96896468ff4 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Add dependencies of wayland protocolsInho Lee2022-11-072-0/+6
| | | | | | | | Some macros are missing DEPENDS for add_custom_commands Fixes: QTBUG-108142 Change-Id: Ifacb2ea9bf3003c10dd407a8c77fc06b893b6a65 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-11-031-2/+2
| | | | | Change-Id: I182859e0a91d36f19c576676de419ec968c16d2c Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Implement QNativeInterface::Private::QWaylandScreenDavid Redondo2022-11-031-2/+9
| | | | | | Change-Id: I2f5cc638f33fe0d884146342516efa7ce8474478 Task-number: QTBUG-94729 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Always use blocking write for data_source.sendInho Lee2022-11-011-0/+8
| | | | | | | | | | | | | QtWaylandClient assumes that data_source's fd is BLOCKING, but some compositors (e.g. mutter) pass an fd with O_NONBLOCK set. In this case, 'write' is not guaranteed to process all of the passed data in one call. Instead of dealing with such partial writes, remove O_NONBLOCK. Fixes: QTBUG-107076 Pick-to: 6.4 6.2 5.15 Change-Id: Ieb446da9fdfbaaa55100f573b396ee449cadc463 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-11-011-2/+2
| | | | | Change-Id: I89f98e73aea975dfd23f7a9c88089dd4f2d38526 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Disable/fix warningsJonas Karlsson2022-10-284-2/+9
| | | | | | | | missing-field-initializers and unused variable Change-Id: I1a5ceaf53ec706786c73eecab0c002fa9153b962 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Enable syncqt cppAlexey Edelev2022-10-271-0/+2
| | | | | | Change-Id: Ie9b681ebb229596d8ece1bb8577b0fcba87b2c88 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Implement QNativeInterface::QWaylandApplicationDavid Redondo2022-10-272-4/+71
| | | | | | | Task-number: QTBUG-94729 Change-Id: I84f080719c6364137368bdd1759947a6d6ef2e5b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Client: Add support for xdg_toplevel.configure_boundsVlad Zahorodnii2022-10-263-22/+162
| | | | | | | | | | | | | | Currently, QtWayland doesn't know about work area size, which can create a problem where some windows don't fit into the screen area or work area. With the xdg_toplevel.configure_bounds event, the compositor can indicate the client the recommended maximum window geometry size. https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/41 Change-Id: I5214aba9f144d091a2afe639de94b8d717c42fdc Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Client: Add support for high-resolution scrollingVlad Zahorodnii2022-10-269-61/+409
| | | | | | | | | | | | | | | With wl_pointer version 8, the axis_discrete event is replaced with the axis_value120 event. The main difference between axis_discrete and axis_value120 is that the latter carries scroll deltas that can be fractions of 120, e.g. 30, etc. See also https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/72 Change-Id: I4f724ead7ba146dde6d8975fa4edfcfca761769d Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-10-261-2/+2
| | | | | Change-Id: I0b5da7226238f8319d535f979e6ef97cf23f173f Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Implement window alert with xdg-activationIlya Fedin2022-10-237-4/+52
| | | | | | | | | | This is implemented by not specifying serial, as mentioned in https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/9#note_854977 Tested on KDE Plasma Change-Id: I4ef0975040bbce581b615b0318f90601e080235c Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Port to new Q_UNREACHABLE_RETURN()Marc Mutz2022-10-191-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator to convert sequences of Q_UNREACHABLE() + return into Q_UNREACHABLE_RETURN(), newly added to qtbase. const std::string unr = "unr", val = "val", ret = "ret"; auto makeUnreachableReturn = cat("Q_UNREACHABLE_RETURN(", ifBound(val, cat(node(val)), cat("")), ")"); auto ignoringSwitchCases = [](auto stmt) { return anyOf(stmt, switchCase(subStmt(stmt))); }; makeRule(stmt(ignoringSwitchCases(stmt(isExpandedFromMacro("Q_UNREACHABLE")).bind(unr)), nextStmt(returnStmt(optionally(hasReturnValue(expr().bind(val)))).bind(ret))), {changeTo(node(unr), cat(makeUnreachableReturn, ";")), // TODO: why is the ; lost w/o this? changeTo(node(ret), cat(""))}, cat("use ", makeUnreachableReturn)); a.k.a qt-use-unreachable-return. subStmt() and nextStmt() are non-standard matchers. Change-Id: I3855b2dc8523db1ea860f72ad9818738162495c6 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-10-191-2/+2
| | | | | Change-Id: I210fbfdfee907389ff8088efe5b76f79f1c20b85 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Allow to run wayland-scanner without --include-core-onlyVolker Krause2022-10-181-3/+6
| | | | | | | | | | | There are Wayland protocols for which using this option doesn't result in compilable code. Examples are input-method-unstable-v1 and linux-dmabuf-v1. Pick-to: 6.4 Change-Id: I06dea12dea1058fb6bd99522aa4278c36d271d4e Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Replace usages of Q_CLANG_QDOC with Q_QDOCLuca Di Sera2022-10-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | To allow the user to customize the C++ code that QDoc sees, so as to be able to work-around some limitations on QDoc itself, QDoc defines two symbols: Q_QDOC and Q_CLANG_QDOC, both of which are "true" during an entire execution of QDoc. At a certain point in time, QDoc allowed the user the choice between a custom C++ parser and a Clang based one. The Q_QDOC symbol would always be defined while the Q_CLANG_QDOC symbol would be defined only when the Clang based parser was chosen. In more recent times, QDoc always uses a Clang based parser, such that both Q_CLANG_QDOC and Q_QDOC are always defined, making them equivalent. To avoid using different symbols, and the possible confusion and fragmentation that derives from it, all usages of Q_CLANG_QDOC are now replaced by the equivalent usages of Q_QDOC. Change-Id: I7b606de94889497a7ee7daebd01e6443a89a60d5 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Adapt module to work with the new syncqtAlexey Edelev2022-10-1210-0/+26
| | | | | | | | | Add dependencies to WaylandCompositor_sync_headers for the qml plugin targets. Add deprecation macros. Fix syncqt warnings. Task-number: QTBUG-87480 Change-Id: I0e169344c9a8186484fbb36f5ec1e03cd38ea19b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add private header filters to the qt_interal_add_module callsAlexey Edelev2022-10-124-0/+8
| | | | | | | | | | This is required to filter the generated wayland files when syncing headers. Task-number: QTBUG-103196 Change-Id: I86d440bf8b56802dff2fa75ba621c37a8daa8bbf Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-10-121-2/+2
| | | | | Change-Id: Ie841dc8d2a1f201a157c1b43f6299c5844053ca5 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-1024-58/+58
| | | | | | | | | | | | | | 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. Task-number: QTBUG-99313 Change-Id: Ia64c6615ee81f7ad5d0658449b0ee347c3db8c29 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Port from container::count() and length() to size()Marc Mutz2022-10-1029-106/+106
| | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8: auto QtContainerClass = anyOf( expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o), 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', with the extended set of container classes recognized. Change-Id: I574208abc90a8042b500b3f96e3862b0ff339eb6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Fix syncqt warningsLuca Di Sera2022-10-102-2/+2
| | | | | | Change-Id: I739eb81ec78a071baa85d24f26bb45b184b9068c Reviewed-by: Topi Reiniö <topi.reinio@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Replace qExchange with std::exchangeMarc Mutz2022-10-063-4/+4
| | | | | | | | | | None of these users require C++20 constexpr or C++23 noexcept, the only remaining difference between std::exchange and qExchange. Task-number: QTBUG-99313 Change-Id: Ic5a0bd36d715af2cbc5f9936fdff665ee6eeea4e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-10-041-2/+2
| | | | | Change-Id: I845277c241f1893ede025d8d1bd1cfce2b1bb7db Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-10-031-2/+2
| | | | | Change-Id: Ic286b358d2e91dc1cf9956c451789bc8b21d04d8 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-09-301-2/+2
| | | | | Change-Id: I15db94e6665472c5656d47a67dee8bc536683177 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix qt_attribution.json fileKai Köhne2022-09-291-4/+4
| | | | | | | | | | | | Fixes File ./qtwayland/src/3rdparty/protocol/qt_attribution.json: Unknown key File. File ./qtwayland/src/3rdparty/protocol/qt_attribution.json: Unknown key License file. Could not parse file ./qtwayland/src/3rdparty/protocol/qt_attribution.json: object is missing after a comma Pick-to: 6.4.0 6.4 Change-Id: I145f9bcc40f175f5d909f7f947c2a20333b70c0c Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Update header files to fit syncqt standardsAlexey Edelev2022-09-286-11/+20
| | | | | | Task-number: QTBUG-87480 Change-Id: I83fd8b53ef7ee4eb068f26e717b37cb2e52fe874 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2022-09-261-2/+2
| | | | | Change-Id: I356046940231720ef4a364aa79759ab3e0c0c8b5 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>