summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wayland/qwaylandshmwindow.cpp
Commit message (Collapse)AuthorAgeFilesLines
* wayland: Fix opaque backgrounds on client side decorationsDavid Edmundson2025-10-011-2/+4
| | | | | | | | | | | | | | | | | | 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]>
* Honor request for (no) alpha channel in SHM windowsKai Uwe Broulik2025-03-101-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently, all QWaylandShmWindows are ARGB32, even if the application did not request an alpha channel (most toplevel windows without client-side decoration). Instead, create an ARGB32 or RGB32 buffer depending on whether the surface requested an alpha channel. In order to do this, set the red/green/blue channel of the QSurfaceFormat to 8 (since that's all we support right now). Alpha channel is set to 8 or 0 depending on whether the surface requested alpha. Due to client-side decorations we cannot know in advance whether we need an alpha channel, so we have to update the surface format in setWindowFlags. While it doesn't particularly matter from the compositor's POV (ARGB and XRGB are the same size and there's the opaque region on the surface), Qt's backing store can skip certain steps in the rendering, such as clearing the paint region before painting when the surface is opaque. Change-Id: I7b74f19ddb05d8ca9ae325f8fd5f42f41875cc51 Reviewed-by: David Redondo <[email protected]> Reviewed-by: Xaver Hugl <[email protected]>
* Use SPDX license identifiersLucie Gérard2022-06-101-38/+2
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I106d3a5d1a7b96250380b6f51a48f3b19d10e4d9 Reviewed-by: Jörg Bornemann <[email protected]>
* Use QList instead of QVectorJarek Kobus2020-06-081-2/+0
| | | | | | Task-number: QTBUG-84469 Change-Id: I4bc7b2eb2913fc828f09f96e21480b76cabf8656 Reviewed-by: Lars Knoll <[email protected]>
* Client: Support running with no screensJohan Klokkhammer Helsing2019-11-121-2/+2
| | | | | | | | | | [ChangeLog][QPA plugin] The QPA plugin now supports running with no screens attached. This is handled by adding a fake screen when the last screen is disconnected, similarly to what the other QPA plugins do. Fixes: QTBUG-79111 Change-Id: I4a0e023ae784217dd030f0c62f12487fdff4825c Reviewed-by: Paul Olav Tvete <[email protected]>
* Updated license headersAntti Kokko2016-01-201-14/+20
| | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I76ae5d3e64f096eb3163d6163a38d68c7c1ca756 Reviewed-by: Lars Knoll <[email protected]>
* Update copyright headersJani Heikkinen2015-02-171-23/+15
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I5a74d32515c3f1fe7aa1916f4241c92832510f8c Reviewed-by: Antti Kokko <[email protected]>
* Namespace the platform pluginsGiulio Camuffo2015-01-291-0/+4
| | | | | | | | | | | | There currently is a QWaylandInputDevice class both in the wayland QPA plugin and in the QtCompositor API. This causes the qwindow-compositor example to crash when running nested in a wayland session due to a mismatch between the two classes. By namespacing all the plugin code we make sure that name clashes will not happen anymore. Change-Id: I17497cff697599200bea68bf01dfde474526390f Reviewed-by: Jørgen Lind <[email protected]>
* Support RasterGLSurface windowsLaszlo Agocs2014-08-251-7/+0
| | | | | | | | | | | | | | | | | In an attempt to make QOpenGLWidget and QQuickWidget working on Wayland. Since Qt 5.3 all widget windows are of type RasterGLSurface (given that the plugin reports this capability which wayland will, with this patch). Such a window can behave either like a raster or an OpenGL window. This concept maps badly to platform plugins that have a rigid separation between raster and OpenGL platform window implementations. From now on, the OpenGL window implementation, that is used pretty much always, except for raw RasterSurface windows, must be prepared to behave like a raster window too, which involves having a backingstore. Change-Id: I0226704b8d5893843fcae68059c5fe9ad2f5e761 Reviewed-by: Robin Burchell <[email protected]>
* Make classes in client privateJorgen Lind2013-12-271-2/+2
| | | | | Change-Id: Ibf400b32f78a6a0fcf0991914d2d9ad684483979 Reviewed-by: Andy Nichols <[email protected]>
* Move wayland into a client directory not under the plugins src folderJorgen Lind2013-12-271-0/+73
And make wayland common files into a library, exporting all classes. Now there is no need to do bulild hacks to make your own version of the wayland plugin. Change-Id: Ib4872863dfb5ab3f2bc0f4a94ae16fc1e7b63b88 Reviewed-by: Andy Nichols <[email protected]>