summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland
Commit message (Collapse)AuthorAgeFilesLines
* wayland: Drop unused memberKonstantin Ritt8 days2-2/+0
| | | | | Change-Id: I809b68b9499de665276636b5a2c14300401e0ae9 Reviewed-by: Vlad Zahorodnii <[email protected]>
* wayland: Remove call to flushWindowSystemEventsBłażej Szczygieł12 days5-128/+2
| | | | | | | | | | | | | | | The flushWindowSystemEvents() call in flushRequests() was added in commit 84f1360289a to preserve event order when we had mixed synchronous and asynchronous expose events. That issue has been resolved in Qt 6.10 when we were able to make all expose calls synchronous, rendering this unneeded. Reverts 6ff771b86f7b961a5ff63f148cf69ecb3415dd95 Pick-to: 6.10 Fixes: QTBUG-139425 Fixes: QTBUG-141938 Change-Id: Idcf3dbc54dc9c3e37cdc586f9f872338e63f4f0d Reviewed-by: David Edmundson <[email protected]>
* Wayland plugins: replace header guards with #pragma onceMarc Mutz2025-11-2817-176/+18
| | | | | | | | | | | | | | | | | | | | | | Following qtbase/1c8884fc277c5916a420a3c14de68547a391f9fc's making syncqt error out when an installable header contains #pragma once, we can now flip the coin and use #pragma once as a static assertion that the given header is not going to be installed, making it easier to understand which headers are "public", which ones are "private" and which ones are "neither, since never installed". Do this for the Wayland platform support files, like 91f9ba2993a2652bcb349ce639aff67b5bfc8938 did for XCB. Since these headers are neither public nor private, also remove "We mean it" comments, where they existed. Had to exclude the QtWlShellIntegration headers, because, for some unknown reason, we install headers from the plugins/ subdir. Pick-to: 6.10 Change-Id: I92f336f79d23134e96cbac13088dbd352e2d3a84 Reviewed-by: David Redondo <[email protected]>
* Wayland integration plugins: fix QT_END_NAMESPACE locationsMarc Mutz2025-11-274-11/+8
| | | | | | | | | | | | | | | Harmless, because QT_END_NAMESPACE is also just '}', but eyebrow-raising, so fix. Amends: - d8e37e4b03f9c786e1cb3dda80b050f05f974752 - 3bf9a581ee13cac988cdfadc7f22d472c1562214 - c2f156e27bf8865dc12108e1aba7cc78bd0dba38 - 6482bf50754e36a89e157ce94096be05b108db75 Pick-to: 6.10 Change-Id: Id59044023bfaf75ddc2bff024439f3d4a20d0936 Reviewed-by: David Redondo <[email protected]>
* Wayland hw-integration headers: don't include yourselvesMarc Mutz2025-11-274-4/+0
| | | | | | | | | | Harmless, but ... eyebrow-raising. Amends 58e68f1981d0ba0a80e373dd5ca78a9260824c36. Pick-to: 6.10 Change-Id: Id5754a772c1e3244a88294390c98604bfe07f0ad Reviewed-by: David Redondo <[email protected]>
* Revert "qpa/wayland: fix handling textinput's focus object"Inho Lee2025-11-261-6/+4
| | | | | | | | | | | | | This reverts commit 97c891edd1dd0fda8d90ddea6da4d499f373a069. QTBUG-141475 is just a case using the client controlled enable/disable. Current implemention still has issues. So, another patch will fix the problem. Reopens: QTBUG-141475 Pick-to: 6.10 Change-Id: I23e5a3a6afa8fc2e1dc88296a585e1c33e045243 Reviewed-by: David Redondo <[email protected]>
* Doc: Wayland: Mark private APIs \internalTopi Reinio2025-11-202-0/+5
| | | | | | | | | | | | | | | | | | | | | | | QDoc warns about documented functions in undocumented classes; Fixes qwaylandshellsurface.cpp:89: [QtWaylandClient] (qdoc) warning: No output generated for function 'QtWaylandClient:: QWaylandShellSurface::commitSurfaceRole()' because 'QWaylandShellSurface' is undocumented qwaylandwindow.cpp:920: [QtWaylandClient] (qdoc) warning: No output generated for function 'QtWaylandClient::QWaylandWindow:: surfaceSize()' because 'QWaylandWindow' is undocumented qwaylandwindow.cpp:941: [QtWaylandClient] (qdoc) warning: No output generated for function 'QtWaylandClient::QWaylandWindow:: windowContentGeometry()' because 'QWaylandWindow' is undocumented qwaylandwindow.cpp:951: [QtWaylandClient] (qdoc) warning: No output generated for function 'QtWaylandClient::QWaylandWindow:: mapFromWlSurface()' because 'QWaylandWindow' is undocumented Task-number: QTBUG-141665 Change-Id: Ia0d6201783eaebcb356f4efd8d48eb42077e3b2a Reviewed-by: David Edmundson <[email protected]>
* Wayland: Add logic for OffscreenSurface capabilityMikko Hallamaa2025-11-184-0/+10
| | | | | | | | | | | The OffscreenSurface platform integration capability was added in change 637918. This patch was detached from that commit to simplify backporting. Task-number: QTBUG-131107 Change-Id: Ic0561fb5f36514275f90e34486b90478dee02022 Reviewed-by: Artem Dyomin <[email protected]> Reviewed-by: David Redondo <[email protected]>
* wayland: Add color-management-v1 supportBłażej Szczygieł2025-11-086-88/+107
| | | | | | | | | | Replace xx-color-management-v4 with color-management-v1. [ChangeLog][Third-Party Code] New protocol synced from wayland-protocols Pick-to: 6.10 Change-Id: Ib8b6c4f491ff664a41e46ce25833cd7d956f19fd Reviewed-by: David Edmundson <[email protected]>
* wayland: Fix crash in QWaylandShmBackingStore::scroll()Błażej Szczygieł2025-11-081-1/+3
| | | | | | | | | | | | | Fixes a crash when monitor is unplugged while scrolling. recreateBackBufferIfNeeded() calls getBuffer() which may set mFrontBuffer to nullptr. Amends: 6f25f703fd37a900c139e14a33a4639502bfeae7 Task-number: QTBUG-139231 Change-Id: Ia5bedce2a3f6580c722f73446de81a26d40ea2f4 Reviewed-by: David Edmundson <[email protected]>
* Doc: Document QWaylandExtensionClient as internalPaul Wicking2025-11-071-0/+5
| | | | | | Task-number: QTBUG-140629 Change-Id: I358e07ac2a92128c8c99afdd300e737cc14e9f8d Reviewed-by: Topi Reiniö <[email protected]>
* qpa/wayland: fix handling textinput's focus objectInho Lee2025-11-061-4/+6
| | | | | | | | | | | Amends c57da9bb0a2d475b72024997657e250d171dcbaa (which is a5ed02659fc78a8f85bac314baf007bfaf30c6f3 in qtwayland) setFocusObject should disable the current surface. Fixes: QTBUG-141475 Pick-to: 6.10 Change-Id: Id5ff55829cad9b8c6c914331d86a1ac4f8fe55ae Reviewed-by: Liang Qi <[email protected]>
* CMake: Remove work-around for fixed bugJoerg Bornemann2025-11-041-8/+0
| | | | | | | | | The fix for QTBUG-115101 went in by now, and we can remove the work-around that was added as temporary measure. Task-number: QTBUG-115101 Change-Id: Idcd5d7d4bd3456083cc5419fc56c0e26ad8d52ee Reviewed-by: David Redondo <[email protected]>
* wayland: Ignore wl_pointer.leave serialVlad Zahorodnii2025-10-301-2/+2
| | | | | | | | | | | | | That serial is not suitable for anything useful. It cannot be used for interactive move/resize, setting a selection, or any other requests. It is also not suitable for event ordering. Qt doesn't use these serials itself, they are mostly useful for communicating back to the compositor. The serials in wl_keyboard.leave events are already ignored. So it also improves code consistency. Change-Id: Ieb684c369ae665c4aeb08a6dc4be31206e0b6ed0 Reviewed-by: David Edmundson <[email protected]>
* wayland: remove duplicate include of qwaylandshmbackingstore_p.hJie Liu2025-10-301-1/+0
| | | | | | | | | The file already includes <QtWaylandClient/private/qwaylandshmbackingstore_p.h>, so the local include "qwaylandshmbackingstore_p.h" was redundant and has been removed to avoid duplicate inclusion. Change-Id: If3596e233ed90c2a04c736cb93056aa58dfd34e1 Reviewed-by: David Redondo <[email protected]>
* widgets: Pass popup semantic information to WaylandDavid Edmundson2025-10-143-84/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Wayland applications do not know their own window positions, this means that popups cannot stay on screen by themselves. When a window tries to go offscreen the way the window is adjusted is context-specific: - The first menu will be kept on screen by moving the x position until it all fits. - A submenu is too close to the screen edge, the menu will open on the opposite side of the parent menu to avoid obscuring it. - A combo box drop downs will vertically flip to the other side of the originating combobox. The Wayland API requires the application to provide semantic hints about the area in which the popup should be placed, along with hints about in which direction we should try to place the popup and how to handle being constrained. At a QPA level we don't know the location of individual widgets so this needs forwarding explicitly. Rather than exposing all possible positioning information, it is inferred from the window type at a QPA level, this required extending windowType to have more explicit values. Ideally this needs to be application-facing API as there are third-party comboboxes, but for now it is private with Qt's default controls opting into it. Task-number: QTBUG-99618 Task-number: QTBUG-124810 Fixes: QTBUG-135883 Change-Id: I49a2f18d1bfe1b755f259627722e076d58c13e8f Reviewed-by: David Redondo <[email protected]>
* wayland: Convey preference for server side decorationsIgor Khanin2025-10-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | As discussed in the mailing list, Qt applications generally expect top level windows to be decorated by the windowing system - unless explicitly requested by the developer by marking a window as frameless. Furthermore, Qt's client side decorations for Wayland were only really intended as a fallback. However until now the Wayland xdg-shell integration conveyed to the compositor (if it supports decorations negotiations) that it didn't care whose responsibility it was to draw window decorations. This did not matter under KWin, which resolves such cases in favor of SSDs - but does matter under other SSD-capable compositors like cosmic-comp (which considers SSDs to be the fallback option). This changes the xdg-shell integration code to be explicit about requesting SSDs. [ChangeLog][QtWaylandClient][Important Behavior Changes] The Wayland XDG shell integration now requests server side decorations with compositors supporting the zxdg_decoration_manager_v1 protocol. Change-Id: Ia025b1f6ff17248a5710f981a0cecd90c47b6cd8 Reviewed-by: David Edmundson <[email protected]>
* wayland: Fix subsurface buffers outliving the backing store queueDavid Edmundson2025-10-101-1/+1
| | | | | | | | | | | | | | | | | | | In the path to handle subsurfaces that are painted as part of another window, QWaylandShmBacking store may create temporary buffers for the subsurface window. This buffer has it's own lifespan managed by autodeletion from the compositor not from the backing store. As it can outlive the QWaylandShmBackingStore it should not share the same event queue as having an object outlive the event queue can be problematic. As we create a new buffer every time the custom event queue is not needed here. Amends: a0161a2b783c1cbea8f1faaa6fe9f14160515900 Pick-to: 6.10 Change-Id: I7815cf8c9fc539e739499a9e637b1e52cb9c92f3 Reviewed-by: Vlad Zahorodnii <[email protected]>
* wayland: Fix potential use after free in QWaylandGLContext::endFrameDavid Edmundson2025-10-091-1/+3
| | | | | | | | | doneCurrent will unset m_currentWindow, we should cache the value for future usage in the method to call endFrame. Amends: d771acf96e8d48c4c48c4beb16caffbd8875b53c Change-Id: Ia12e7a87808523f45f2e3d7e1f2208b3c590915d Reviewed-by: David Redondo <[email protected]>
* Wayland: handle delayed CSD creation following decoration negotiationIgor Khanin2025-10-081-3/+3
| | | | | | | | | | | | | | | | | | | When window decoration negotiation takes place such that it results in the zxdg_toplevel_decoration_v1.configure event telling that the client should do CSDs coming slightly before or together with the first xdg_toplevel.configure event - the decorations are created during the handling of the latter. But that processing relies on geometry data from before creation of the decorations, which is stale. Handle this by moving the call to QWaylandWindow::windowContentGeometry to be after the call to handleWindowStatesChanged, since the latter can cause changes to the gemoetry of the window. Fixes: QTBUG-140847 Pick-to: 6.10 Change-Id: I5157f7d7f2fd4f45aaf7c8209cded565bd7cd21e Reviewed-by: Ilya Fedin <[email protected]> Reviewed-by: David Edmundson <[email protected]>
* Wayland platform plugin: port away from QPairAhmad Samir2025-10-082-6/+8
| | | | | | | Task-number: QTBUG-115841 Change-Id: Ib623fa71a90b0f250dbbe6e3e004a955bac65c86 Reviewed-by: David Edmundson <[email protected]> Reviewed-by: David Redondo <[email protected]>
* wayland: Fix opaque backgrounds on client side decorationsDavid Edmundson2025-10-013-4/+6
| | | | | | | | | | | | | | | | | | QWaylandSHMWindow needs to react to decorations being created to adjust the surface format. Rather than guessing when the decoration is created based on the window flags changing, introduce an explicit hook on the main window class. Ammends 12e55c95b23c766f9b968597fcf651173e78944c. Fixes: QTBUG-136110 Pick-to: 6.10 Change-Id: If8009444801bc92ebdf8a8ecb1cf9fbadb549532 Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]> Reviewed-by: Liang Qi <[email protected]> (cherry picked from commit 5a8637e4516bc48a0b3f4b5ec3b18618b92e7222) Reviewed-by: Qt Cherry-pick Bot <[email protected]>
* wayland: Enable event compression and fix scroll end eventBłażej Szczygieł2025-09-293-45/+61
| | | | | | | | | | | | | | | | | | | | We have to deliver the scroll end event in order with other scroll events, so move scroll end event logic into flushScrollEvent(). Track the target scroll window on scroll begin and check whether we have a target window to prevent a crash. Also we can't clear the scroll delta when scroll end event arrives, because the event compression relies on this value. Use scoped pointer for frame event to simplify code and make sure it's deleted in destructor. Amends 095759818854e5a011aa8f859e566bbc6368ab76 Updates 789681872fb62450fc78d1a06472a40d970a8d57 Change-Id: Ifb149c8fde1286b60439be0dab16b1df65279ea8 Reviewed-by: David Edmundson <[email protected]>
* Remove Qt::WindowType::Desktop in QWaylandWindowAxel Spoerl2025-09-251-3/+0
| | | | | | | | | Qt::WindowType::Desktop is no longer a valid window type in Qt6. Remove its occurence in QWaylandWindow.. Task-number: QTBUG-140514 Change-Id: I2f1fa6672594fa2a18c616b3f3e5c2258b3217e9 Reviewed-by: David Redondo <[email protected]>
* wayland: Fix offscreen surface integrationDavid Edmundson2025-09-251-4/+26
| | | | | | | | | | | | | | As well as creating a pbuffer, we need to change our activation handling. For offscreen surfaces we can use the default implementations directly, this matches XCB's EGL implementation. Whilst using an offscreen surface m_currentWindow is set to null requiring us to change guards used there. amends dbcc76b1326b7c6fded3eec5ae23ea08d53186e9 Change-Id: I3fd3d97f2aab75a0b34083f62af13d4b40d7fb12 Reviewed-by: Vlad Zahorodnii <[email protected]>
* Handle subsurfaces with scaling correctlyDavid Redondo2025-09-241-3/+5
| | | | | | | | | | | | | We need to use device coordinates to copy the correct region, not logical window size. Also paint the subsurface with scaling and not scale down. Use the passed offset instead of window position, sometimes they dont match. Pick-to: 6.10 Change-Id: I2019dd093bdfb6eb225845606509820523f10034 Reviewed-by: David Redondo <[email protected]>
* wayland: Implement createPlatformOffscreenSurfaceKai Uwe Broulik2025-09-235-1/+19
| | | | | | | | Using QEGLPbuffer. Change-Id: I44c10c6caf2364cfa2cf99650383f8e90e476f12 Reviewed-by: David Edmundson <[email protected]> Reviewed-by: Vlad Zahorodnii <[email protected]>
* wayland: Implement server-side key repeatAndri Yngvason2025-09-182-3/+15
| | | | | | | | | This implements wl_keyboard key repeat events. [ChangeLog][Third-Party Code] Update wayland.xml to 1.24.0. Change-Id: I21fc247bd95485e3c7189c47cb0cc999c431587f Reviewed-by: David Edmundson <[email protected]>
* plugins/platforms/wayland: fix AutoMoc warningAhmad Samir2025-09-181-2/+0
| | | | | | | | | | | | | | | AutoMoc: src/plugins/platforms/wayland/qwaylandwindowmanagerintegration_p.h: note: No relevant classes found. No output generated. The class doesn't inherit from QObject, and so doesn't have any signals or slots. Amends 4a57ddd3ba0551a3b144cc53c4b48d9b454e96a0, which is only in 6.10 (this file was copied from qtwayland to qtbase?). Pick-to: 6.10 Change-Id: I9f702807574072099a96f4057a91e624ddca9c70 Reviewed-by: David Redondo <[email protected]>
* Support graphics reset notifications on EGLDavid Edmundson2025-09-172-10/+79
| | | | | | | | | | | | | | | If a GPU hangs or is reset, this flag ensures the application is notified with a context loss event. This can then be queried by platforms to make use of Qt's existing reset handling. This is opt-in by applications based on the ResetNotification flag on the requested format. If a robust context cannot be created, it falls back to trying without this flag and the state is reflected in the retrieved surfaceFormat matching the behavior of GLX. Pick-to: 6.10 Change-Id: Idd53d275be8842f2d44bcd2b8c077c3ea19ca164 Reviewed-by: Laszlo Agocs <[email protected]>
* wayland: fix build with -no-openglMoss Heim2025-09-161-0/+6
| | | | | | | | | | This amends 7c0a96785fee4fea8ef1452166b1dde88957445c . Pick-to: 6.10.0 6.10 Fixes: QTBUG-140172 Change-Id: I9bbf14507cfb9208fe9a8637e789d977c5d1a89e Reviewed-by: David Edmundson <[email protected]> Reviewed-by: Liang Qi <[email protected]>
* Add QWaylandApplication::xkbContext()Dmitry Kazakov2025-09-122-0/+15
| | | | | | | | It is necessary for the apps that want to manually parse the stream of events from wl_keyborad. Change-Id: I8229ae6e43640d0e7b9597f5f7b35cba59db0f64 Reviewed-by: David Edmundson <[email protected]>
* Wayland: Don't leak tokenProviderUlf Hermann2025-09-121-0/+1
| | | | | | | | Apparently the done() signal might never arrive, in which case the tokenProvider would leak. Parent it to the surface to prevent this. Change-Id: Icc03fc6b60deba9ae4d297fcec38318cb04768d7 Reviewed-by: David Edmundson <[email protected]>
* wayland: Fix handling of ExcludeUserInputEvents in QEventLoopBłażej Szczygieł2025-09-085-3/+128
| | | | | | | | | | | Add QWaylandEventDispatcher class which holds current QEventLoop flags and pass them to QWindowSystemInterface::flushWindowSystemEvents(). Amends dbe589453083037a6e4c0a23e6f342cfd9172877 Fixes: QTBUG-139425 Change-Id: I85489ae6f964362b6f388bff7cf735197869732a Reviewed-by: David Edmundson <[email protected]>
* wayland: Drop QWaylandGLContext::getProcAddress()Vlad Zahorodnii2025-09-032-10/+0
| | | | | | | It's the same as getProcAddress() in the QEGLPlatformContext class. Change-Id: I7b66a953f77bde0bf188718e234ba362e055fe4d Reviewed-by: David Redondo <[email protected]>
* Deprecate and remove traces of RasterGLSurfaceTor Arne Vestbø2025-09-032-8/+2
| | | | | | | | | | We no longer use this hybrid surface type approach for Qt Widget's composition mode. Nowadays we use RHI to compose the widget texture and the native textures, and the window surface type depends on the RHI API in use, e.g. QSurface::MetalSurface, or QSurface::OpenGLSurface. Change-Id: I85001100f681a1cf524b8b7dc50f680a9579b447 Reviewed-by: Laszlo Agocs <[email protected]>
* wayland: Check a drag is still ongoing after invoking user codeDavid Edmundson2025-08-261-3/+6
| | | | | | | | | | | | | | QWindowSystemInterface::handleDrop is dispatched to application code syncronously, this could perform an operation that cancels the existing drag. Also renamed a variable that shadowed a variable in the same method. Pick-to: 6.10 Fixes: QTBUG-139056 Change-Id: Ia4e016ca124edc9f2f551616f52e1caafdf2f07e Reviewed-by: Błażej Szczygieł <[email protected]> Reviewed-by: David Redondo <[email protected]>
* wayland: Send enter event when modal window closesBłażej Szczygieł2025-08-231-0/+7
| | | | | | | | | | | QtGui sends leave event to window under cursor when modal window opens, so we have to send enter event when modal closes and window has cursor and gets unblocked. Task-number: QTBUG-138883 Pick-to: 6.10 Change-Id: I7aeda1d534dbfeb9d480fba7413c942c0332ef5b Reviewed-by: David Edmundson <[email protected]>
* wayland: Optimize scroll operationBłażej Szczygieł2025-08-232-40/+74
| | | | | | | | | | | | | | | Don't copy the dirty region in "recreateBackBufferIfNeeded()" in "beginPaint()". Mark this region as non-dirty in the back buffer and paint. Finalize the back buffer (copy remaining dirty region) before flushing. This allows to optimize scrolling, we no longer have to do a redundant dirty area copy. This matches the "QCALayerBackingStore" logic. Task-number: QTBUG-139231 Change-Id: I6c19491fa8f093de9c9ce7624d8f9b65b0b722c5 Reviewed-by: Tor Arne Vestbø <[email protected]> Reviewed-by: David Edmundson <[email protected]>
* UBSan build failure by replacing QThreadPrivate usageLiu Zheng2025-08-211-3/+2
| | | | | | | | | | | | | | | Replace private QThreadData::get2() API calls with public Qt APIs to resolve undefined symbol references when building with UBSan. The issue occurred because QThreadPrivate symbols are not exported in non-developer builds, causing link failures with UBSan enabled. This fix maintains the same thread safety validation while using only public APIs: Fixes: QTBUG-123404 Change-Id: Ie73ac47246302f133367f2cd7cab5d8f77f0cfcb Reviewed-by: Anton Kudryavtsev <[email protected]> Reviewed-by: David Edmundson <[email protected]>
* Handle top-level Tool windowsAllan Sandfeld Jensen2025-08-203-13/+14
| | | | | | | | | | | | Undo most Qt::Tool and Qt::Popup overlap, and keep just basic logic of dealing with transientsParents and positioning. Amends 4eba0b5305a585e4454e1935bd93b8e1b3b71681 Pick-to: 6.10 Fixes: QTBUG-139250 Change-Id: I0ea4275740f41b54f0604fced86ec828919c3ae7 Reviewed-by: David Edmundson <[email protected]>
* wayland: Don't scroll the busy bufferBłażej Szczygieł2025-08-151-2/+5
| | | | | | | | Pick-to: 6.10 Task-number: QTBUG-138882 Change-Id: Ibf62b158bac96e0b3cc7f09d3cda2f31748b5fb8 Reviewed-by: Tor Arne Vestbø <[email protected]> Reviewed-by: David Edmundson <[email protected]>
* wayland: Set ignore drop action for rejected drop responseBłażej Szczygieł2025-08-132-2/+2
| | | | | | Pick-to: 6.10 Change-Id: Ia0b971244b71185ced9e024ecaf6f8510f80b62e Reviewed-by: David Edmundson <[email protected]>
* wayland: Fix cursor state managementDavid Edmundson2025-08-134-34/+34
| | | | | | | | | | | | | | | | | | | setMouseCursor was used exclusively for CSDs, we shouldn't be storing it in the cursor management. Otherwise when the cursor is restored we restored when we move out of decoration we restore the application set cursor. We should just apply the cursor directly as it takes precedent. In addition the handling of unsetting a cursor back to default was not implemented. We need to unset the application stored cache and always update the server state. Updates 555bda173621e18ae15117677ed3f314cee4a6bb Pick-to: 6.10 Fixes: QTBUG-138542 Change-Id: I6e701471f6b0500e6f301a0c8dcb917b4f4439b1 Reviewed-by: Błażej Szczygieł <[email protected]> Reviewed-by: David Redondo <[email protected]>
* wayland: Prevent synthetic commit if window is unexposedVlad Zahorodnii2025-08-121-1/+1
| | | | | | | | | | With QT_QTESTLIB_RUNNING, the QWaylandWindow can commit the surface, but it does not check whether the window is still exposed after sending a syncrhonous expose event. Pick-to: 6.10 Change-Id: I02ad9b9961912b760180f38ce3cc437ac9b589fa Reviewed-by: David Edmundson <[email protected]>
* Implement tool window type handling on WaylandAllan Sandfeld Jensen2025-08-123-15/+14
| | | | | | Pick-to: 6.10 Change-Id: I99831d1d082355ab1272ff1ef30c55021aa3f4d7 Reviewed-by: David Edmundson <[email protected]>
* wayland: don't copy shm buffer region which is about to paintBłażej Szczygieł2025-08-082-14/+25
| | | | | | | | Pick-to: 6.10 Task-number: QTBUG-135954 Change-Id: I34d6f07fe674472b000c5ba184f42a372858037d Reviewed-by: David Edmundson <[email protected]>
* wayland: Disable compress high frequency events for nowDavid Edmundson2025-08-081-2/+0
| | | | | | | | | | | The code is fine in itself, but it's introduced a flakey unit test. This disables event compression until the other fixes are in. Amends 095759818854e5a011aa8f859e566bbc6368ab76 Change-Id: If23ca76bc3cc4daf13dcb889bca9ce785afff593 Reviewed-by: Błażej Szczygieł <[email protected]> Reviewed-by: Vlad Zahorodnii <[email protected]>
* wayland: Only include core filesDavid Redondo2025-08-062-2/+2
| | | | | | | Otherwise we might get conflicts with our generated protocol definitions. Change-Id: If58a3441341553474044631be1bd312afaceeb04 Reviewed-by: Vlad Zahorodnii <[email protected]>
* Doc: Fix incorrect usage of \generatelistTopi Reinio2025-08-061-1/+1
| | | | | | | | | | | | | | | | | | | | | The \generatelist command takes an optional argument that affect how the members are listed, for example, `classesbymodule` which creates an annotated list of the classes in a named C++ module. `groupsbymodule` is not recognized or documented. QDoc falls back to generating a list of all members of a group in this case. While the end result is correct, this relies on an undocumented feature that is likely to change and break. Replace these instances with an explicit \annotatedlist command that produces the same output. Pick-to: 6.10 Task-number: QTBUG-138901 Change-Id: I5d83c0e54daa1888beebb77d8391ea607b8464ed Reviewed-by: Paul Wicking <[email protected]>