summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandcompositor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Prepare for hiding of logging categories in namespacesUlf Hermann4 days1-4/+13
| | | | | | | | | | We can and should use the new export macro for the client logging categories, but we need to manually define the compositor logging categories now since they are public and we cannot change their symbols. Task-number: QTBUG-67692 Change-Id: If4eb9c390a4851945d308e2b83ef13b12816698a Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Make sure XDG_RUNTIME_DIR is createdPaul Olav Tvete2024-03-061-0/+4
| | | | | | | | | | | | | Before Qt 6.5, QGuiApplication would create XDG_RUNTIME_DIR as a side effect of looking up QStandardPaths::writableLocation during platform theme initialization. Since QtWaylandCompositor cannot function without a writable XDG_RUNTIME_DIR, do that lookup when the compositor is constructed. Fixes: QTBUG-122965 Pick-to: 6.7 6.6 6.5 Change-Id: Ia2365f08ba75be276ca7cc5520875c08cc82b465 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Respect WAYLAND_DISPLAY on compositorSamuli Piippo2024-02-081-0/+2
| | | | | | | | | If WAYLAND_DISPLAY environment variable is set, clients connect to it by default. Use the same env also on compositor when creating the socket. Pick-to: 6.7 Change-Id: I7e45437b9662e6591a675922de05fb7b9e324b8e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Support TextInput V3 over v4-wipDavid Edmundson2023-12-131-2/+0
| | | | | | | | | | | | | | | | | Support for v4-wip was not added into any desktop linux compositors, nor was it ever enabled into the default Qt client builds for clients or compositor. TextInputV3 has become the most widely deployed. Whilst changes are needed, they do not need to be breaking changes. A second iteration of V3 can add the features we need. This is now in motion upstream. For cases where QtWaylandCompositor is used, the custom Qt text input method is preferred to work with the Qt virtual keyboard. Pick-to: 6.7 Change-Id: I01e2686c67846804c0069f1495952b530547f91c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix injecting key events in QML testsBernd Weimer2023-07-121-0/+2
| | | | | | | | | | | | | Since QTBUG-110268 was fixed, injected key events by the TestCase QML type take a different code path and don't go through sendFullKeyEvent() any more that would map the key to a proper scan code, if not provided. The mapping has been added to the new path, as well. Fixes: QTBUG-115112 Pick-to: 6.6 6.5 Change-Id: I79c7e7813b380daf586916eeca68acc4ab392872 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Doc: Use correct module identifiers in QML documentationTopi Reinio2023-06-081-12/+12
| | | | | | | | | | | | | | | | Multiple \qmlproperty, \qmlmethod, and \qmlsignal topics used an incorrect QML module identifier. With upcoming changes to QDoc these will start to generate documentation warnings. Fix the commands to either use the correct identifier, or remove the identifier as QDoc is capable of resolving the parent QML type without it. In passing, fix a documentation linking issue. Pick-to: 6.6 6.5 Change-Id: I5a562acc5f135d36c036ea1c1cc56218c23833b8 Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
* Don't refer to private APIs in public docsEskil Abrahamsen Blomfeldt2023-05-251-2/+1
| | | | | | | | | | | | This was added in 00b9c558886945bd9b37671732d14e3982fe3da5 and by using private APIs it is indeed possible to delegate input events to specific seats. But having this as part of the public documentation implies it is supported and users will expect examples etc. on how. Pick-to: 6.2 6.5 Change-Id: Ib5f955eb586c7c920e46da2e58e5415cd8a1379b Reviewed-by: Inho Lee <inho.lee@qt.io>
* compositor: adapt to new QXkbCommon::modifiers()Mario Roessel2023-04-241-1/+1
| | | | | | | | Pick-to: 6.5 Fixes: QTBUG-111503 Done-With: Liang Qi <liang.qi@qt.io> Change-Id: Ib6adb03575c06f667ec5d7a0139b4396888d4010 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-101-4/+4
| | | | | | | | | | | | | | 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>
* Replace qExchange with std::exchangeMarc Mutz2022-10-061-1/+1
| | | | | | | | | | 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>
* Use SPDX license identifiersLucie Gérard2022-06-101-29/+3
| | | | | | | | | | | 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 <joerg.bornemann@qt.io>
* compositor: Fix build without xkbcommonEskil Abrahamsen Blomfeldt2022-05-101-0/+4
| | | | | | | | | | | This amends 4910b7adfa706520cd5180d5384b999488550aef. QWaylandKeyboardPrivate::resetKeyboardState() is behind an #if. We need to match the condition for the code that calls it. Fixes: QTBUG-103341 Change-Id: I6337a64870bb08930b0d19e03ca7fcc28e345493 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Clear keyboard modifier state when application deactivatesEskil Abrahamsen Blomfeldt2022-05-031-0/+16
| | | | | | | | | | | | | | | | | | | | | | When the application deactivates while a modifier is held down, the modifier would get stuck and be set for all subsequent shortcut events. This could easily happen when nesting a Wayland compositor inside another compositor and using ALT+TAB to switch to another application. The alt modifier would then get stuck, since it never received any release event. When the application is inactive and then comes back, we can't know which keys are pressed, so it's better to just assume they are all cleared at this point. [ChangeLog][QtWaylandCompositor] Fixed a bug where keyboard modifiers would get stuck if the compositor was running nested inside e.g. X11 and then ALT-TAB was used to switch to a different application. This would cause shortcuts to misbehave. Fixes: QTBUG-101862 Change-Id: I9645418719d8ef8fc2ce2203ca5b6a159f3d9a7c Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Support text-input-unstable-v4-wipInho Lee2021-11-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This feature can be enabled by -feature-wayland-text-input-v4-wip. It is disabled by default. TextInputManagerV4 is available in a compositor. zwp_text_input_v4 is available for QT_WAYLAND_TEXT_INPUT_PROTOCOL in a client It supports Hangul(Korean) with a qtvirtualkeyboard patchset (refs/changes/02/357902/3) It includes some workarounds for ibus because each ibus module has its own policy for focus-in/focus-out. enter/leave will synchronize with enable/disable and they will happen whenever focus-in/focus-out happen. Cursor/anchor positions are byte offsets. Surrounding text will be trimmed when it is over 4000 byte. For debugging, uses "qt.waylandcompositor.textinput" in a compositor side uses "qt.qpa.wayland.textinput" in a client side Tested on qtvirtualkeyboard and ibus TODO : * QTBUG-97248 - event:preedit_commit_mode is not implemented yet. Current preedit_commit_mode is 'commit'. * request:set_text_change_cause is not implemented. Task-number: QTBUG-94327 Change-Id: I72644893f40f30c4b03cd6a7d05483d12bde1070 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Doc: Fix undocumented parameter in QWaylandCompositor::seatFor()Topi Reinio2021-06-071-1/+1
| | | | | | Task-number: QTBUG-91875 Change-Id: I1d1a16309ceacda0f95123895574664c2465008f Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* Docs: Add "instantiates" keywordsKai Uwe Broulik2021-04-261-0/+1
| | | | | | | | | Document what the corresponding C++ class for any given QML item is, like it's done in Qt Declarative. Pick-to: 5.15 Change-Id: I015565f88cb457f1e73dd7c2c54edff3505db395 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Allow seat selectionElvis Lee2021-04-261-13/+17
| | | | | | | | | | Add a virtual method QWaylandCompositorPrivate::seatFor and move the body of QWaylandCompositor::seatFor there. It allows a custom seat selection for a given event by re-implementing seatFor in the private class. Change-Id: I23259e8b6532e3e4d624d8aaf8c71faa5018399e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Support multiple buffer integrationsPaul Olav Tvete2020-08-261-20/+50
| | | | | | | | | | | | | Allow compositors to support more than one type of hardware client buffer integration. [ChangeLog][QtWaylandCompositor] QtWaylandCompositor now supports multiple client buffer integrations. QT_WAYLAND_CLIENT_BUFFER_INTEGRATION will now accept a semicolon-separated list. Fixes: QTBUG-68846 Change-Id: Iff1fa0a45b01f6a45dd744c37a89bac7d5e70658 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add API for selecting supported wl_shm formatsEskil Abrahamsen Blomfeldt2020-08-211-4/+50
| | | | | | | | | | | | | | | | | | | | We would always reported all formats we could convert from as supported on the wl_shm protocol. This would sometimes cause clients to pick formats that required internal conversion when creating OpenGL textures from the images. To avoid this, we default to only supporting the RGB32 and ARGB32_Premultiplied formats (which are required and advertised automatically) and if the user wants to add additional formats, we now have a additionalShmFormats property for this. [ChangeLog][QtWaylandCompositor] The compositor will now by default only advertise support for the required wl_shm formats. Additional formats can be added to the list by setting the additionalShmFormats property on the compositor. Fixes: QTBUG-77531 Change-Id: Ibd5d5be2a37968353c00308abbfff7ca6f8d310d Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Support wl_surface.damage_bufferPaul Olav Tvete2020-07-071-1/+1
| | | | | | | | | Add compositor support for wl_surface.damage_buffer requests. This also required updating wl_compositor to version 4. Fixes: QTBUG-74927 Change-Id: I887ed04e60fe14ecce7df6a517950b0091e2ad54 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Remove checks for old Wayland versionsPaul Olav Tvete2020-07-061-9/+0
| | | | | | | | | Now that the minimum libwayland version is 1.15, there is no point in checking whether the version is greater than 1.10. Task-number: QTBUG-73636 Change-Id: I75a97bec7e464aa6b04e21d1c23566d17ac7684a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Use QList instead of QVectorJarek Kobus2020-06-081-1/+1
| | | | | | Task-number: QTBUG-84469 Change-Id: I4bc7b2eb2913fc828f09f96e21480b76cabf8656 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devLiang Qi2020-04-291-24/+7
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/client/xdgoutput/tst_xdgoutput.cpp Regenerated CMake projects. Removed duplicate wayland source in tests/auto/client/xdgoutput/xdgoutput.pro. It's still referenced via the included shared.pri file. Regenerated the CMake project to adapt to that. Otherwise the CMake project fails to configure due to duplicate rules with a error like the one below CMake Error at src/compositor/Qt6WaylandCompositorMacros.cmake:13 (add_custom_command): Attempt to add a custom rule to output tests/auto/client/xdgoutput/wayland-xdg-output-unstable-v1-server-protocol.h.rule Also use a workaround fix for configuring CMake standalone tests due to regression introduced by dd7e40b1086020f6a054957f4972720cd684 in qtbase. Change-Id: Ib364b851a1fa828c153efbf8653c9e4ef5e618cd
| * Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-04-211-23/+6
| |\ | | | | | | | | | Change-Id: I82c07ab72138774a0809bf60f0f3251d32923847
| | * Revert "Compositor: Warn and clean up when client hardware buffer ↵v5.14.2Jani Heikkinen2020-03-241-23/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | integrations fail" This reverts commit 137966a6293b50f6b248d130a2e36e67df49335e. Reason for revert: QTBUG-82948 Conflicts: src/compositor/compositor_api/qwaylandcompositor.cpp src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp Change-Id: I77e3265c336fbcdf47eb1aa5dc07f31ec41006b5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * | Update connects to QSocketNotifier::activatedMårten Nordheim2020-04-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The int-overload will in some cases truncate the descriptor. So it's being replaced. On Linux it won't truncate, so the slot can stay as int, but we still update which signal to connect to. Task-number: QTBUG-70441 Change-Id: I516a453c381e8d29464febabfd69c788e58db5fe Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | CMake: Regenerate and adjust projects after mergeAlexandru Croitor2020-03-261-0/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the changes that were needed - adjusted wayland macros due to changed target names for plugins - a few direct moc file includes, to get rid of compilation errors - Threads::Threads linking for a few tests - a few special cases for QT_FOR_PRIVATE handling because pro2cmake doesn't handle those correctly at the moment (they map to PRIVATE_MODULE_INTERFACE rather than PRIVATE_LIBRARIES) - just regenerating all projects Change-Id: I418ce91b1c69c7388d41eb22b94a93a9e80fa732 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Turn QNX key codes into xkbcommon key codesJames McDonnell2020-01-311-0/+9
| | | | | | | | | | | | | | | | | | | | This just requires adding 8 to the key code when the platform plugin is qnx. Inherited from evdev which inherited it from XKB. It's easier to conform to the requirement than remove it. Change-Id: Icd32ebf27256f29405821c7c8b7b8d93ff7f8fe0 Reviewed-by: Dan Cape <dcape@qnx.com> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Merge remote-tracking branch 'qt/5.14' into 5.15Paul Olav Tvete2020-01-091-2/+5
|\| | | | | | | Change-Id: I21c6a0a4bc8df8dcaf9e33647482ba43c7b7d6c4
| * Avoid potential double deletionPaul Olav Tvete2020-01-091-2/+5
| | | | | | | | | | | | | | | | It's not safe to use qDeleteAll on lists that change when elements are deleted. Change-Id: I7ec5b41da9eea839d1bda88bde621cc73a27927f Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-11-231-11/+13
|\| | | | | | | Change-Id: If5fcfe5252c1ac1db63ec77136b186a104280b57
| * Doc: Fix documentation warningsTopi Reinio2019-11-131-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add missing function and function/qml method parameter documentation, linking issues, and other minor tweaks. QDoc fails to parse a Q_PROPERTY if the property type includes the keyword 'enum' - fix that in the header file for QWaylandXdgToplevel::DecorationMode. These changes bring the currect warning count to zero. Fixes: QTBUG-79817 Change-Id: I302b110eb91858f06e9cd410872a12365d421a8e Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Simon Hausmann2019-10-311-5/+16
|\| | | | | | | Change-Id: I29524a74e495dd46c0dc5d0a0d10e41e55526f14
| * Compositor: Warn and clean up when server buffer integrations failJohan Klokkhammer Helsing2019-10-281-5/+16
| | | | | | | | | | | | | | | | Makes it consistent with how client buffer integrations work. Also doesn't leave partially initialized integration around for the compositor to use. Change-Id: I6ff898639b958f62330879a2eff1acbc7e5cdb1f Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-10-261-5/+23
|\| | | | | | | Change-Id: If09bb13aa7a0aadd5cfb8265166d3b9d1b22e2f1
| * Compositor: Warn and clean up when client hardware buffer integrations failJohan Klokkhammer Helsing2019-10-251-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've recently seen a number of performance issues on bugreports and on the mailing list. The problem in many of these cases, is that no client hardware buffer plugin is used. I.e. it's just due to our fallback to CPU buffers when the compositor is configured incorrectly or run in a setup where hardware buffers are not available. This patch detects when client hardware buffer plugins fail and prints a warning explaining the issue to the console. This will make it easier to differentiate between expected and unexpected drops in performance and will hopefully also guide users in the right direction to fix their setup (set the right environment variables and perhaps recompile Qt with a supported OpenGL version). QtWayland::ClientBufferIntegration now returns a bool indicating success or failure. The integration is now destroyed immediately if it failed, instead of leaving it lying around until the compositor shuts down. There has been some slight changes in the xcomposite plugins as well, turning some qFatals into qCWarnings and failing more softly (with the warning mentioned above). Task-number: QTBUG-78483 Change-Id: I55293dbb3cf72768f3982c075fcf63e79329ada1 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-10-191-15/+5
|\| | | | | | | Change-Id: I62ad84b48962fc119e4483a794406d8f4768ee32
| * Update QtWaylandCompositor license headers to GPL 3v5.14.0-beta2Paul Olav Tvete2019-10-161-15/+5
| | | | | | | | | | | | | | | | | | | | | | | | As announced on the mailing list, QtWaylandCompositor licensing is changing to GPLv3: https://lists.qt-project.org/pipermail/development/2019-October/037666.html Change-Id: I4bdc1aa5914e53ac760acc2b6453355af636baa9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Compositor: Print XDG_RUNTIME_DIR and socketname when socket creation failsJohan Klokkhammer Helsing2019-10-181-2/+2
|/ | | | | Change-Id: I652e58ae537103b6f97bc74ba2aca6a75b3a7e6b Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
* QWaylandCompositor: replace a heap-allocating QList with std::vectorMarc Mutz2019-07-181-1/+1
| | | | | | | QPointer is larger than void*. Change-Id: I144104a71eef1d023d20d3a024960c429bad6827 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Eradicate Q_FOREACH loops [2/2]: non-trivial casesMarc Mutz2019-06-051-1/+1
| | | | | | | | | | | | | | | | | | This patch contains two changes where there is a non-neglible chance that through some indirect call the container we iterate over could be modified. In the listener case, it's not impossible that a listener de-registers when it's notified. So take a copy. In the polish_objects case, the 'initialized' flag is set before the loop starts, and the only other reference to polish_objects, in addPolishObject(), does not append to polish_objects in that case, but sends the polish event directly. So use a consume loop, to release the memory and the QPointers once they're dealt with. Change-Id: I63d32e8a298ed5e1a7d5446434c421df80c0c795 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Eradicate Q_FOREACH loops [1/2]: trivial casesMarc Mutz2019-05-211-4/+4
| | | | | | | | | | | | | | | In this patch, we port Q_FOREACH loops to C++11 ranged-for loops. All cases are trivial in the sense that either the argument is already const or is trivially marked as const, either by qAsConst(), or, in the case of rvalues, by storing to a const auto temporary first. In addition, all loop bodies are clear enough to confirm that the container we iterate over is not changed under iteration. This does not exclude cases where a loop is prematurely exited just after calling a modifier on the container, as that is safe, if not especially elegant. Change-Id: I87a63f07797437d421567d60e52305391a3c4f21 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Merge remote-tracking branch 'origin/5.13' into devJohan Klokkhammer Helsing2019-05-071-6/+13
|\ | | | | | | | | | | | | | | Conflicts: src/client/qwaylanddisplay_p.h src/client/qwaylandwindow.cpp Change-Id: I50eb5c83a8b81e4bdb032b68d41f429b17d0a74d
| * drop qwaylandxkb and share the logic with X11Gatis Paeglis2019-04-251-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | QtWayland can benefit from sharing code with X11. This will fix issues that have been reported and fixed on XCB a long time ago. Task-number: QTBUG-65503 Fixes: QTBUG-71301 Fixes: QTBUG-66497 Change-Id: I09cbf8e1c9cf29e8d7f46b97bc2f11d6e91b61a5 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| * compositor: rework xkb context/keymap/state handlingGatis Paeglis2019-04-161-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | - Use smart pointers from xkbcommon_support-private. - Avoid unnecessary strdup()/free() calls. - Don't recreate context. And move it into qwaylandcompositor so it can be shared between seats. It contains things like a logging level and include paths. Change-Id: Ibea29f2874cc147a8e08f15192831fa42ca58f48 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-04-101-2/+7
|\| | | | | | | | | | | | | | | | | Conflicts: src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp Done-with: Johan Klokkhammer Helsing <johan.helsing@qt.io> Change-Id: Ia6fa28454f681b4965b5e18f635cb8c40da316f3
| * Compositor: Don't destroy wl_display from platform integrationJohan Klokkhammer Helsing2019-04-081-2/+7
| | | | | | | | | | | | | | | | | | If the platform integration provides the wl_display, it should be the platform integration's responsibility to destroy it as well. Task-number: QTBUG-74879 Change-Id: I18999a5bd8cdc2900cac86f156f2adaaebf86158 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Compositor: Don't require OpenGL to build the QML APIsJohan Klokkhammer Helsing2019-04-041-0/+2
|/ | | | | | | | | | | | [ChangeLog][Compositor API] The compositor API now works without OpenGL support. This makes the compositor API work with shared memory clients only. If OpenGL clients connect they will currently punch holes in the compositor window, but fixing that is out of scope for this patch. Fixes: QTBUG-74896 Change-Id: I6c1ba82f28ba9edecf380e471124e15d16f9518e Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* [docs] Fix qdoc warningsKavindra Palaraja2019-03-191-2/+2
| | | | | Change-Id: I57e89057a238064e1270d036b656d261b85e50e7 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Compositor: Call eglUnbindWaylandDisplayWL when destroying the compositorJohan Klokkhammer Helsing2019-03-141-0/+3
| | | | | | | | | | | | | | | If unbind is not called, some drivers may try to do cleanup that depends on a valid wl_display in eglTerminate. Arguably, this could/should also have been fixed in the affected drivers. There is a display_destroy signal that the driver should listen to, to avoid using dangling wl_display and wl_global pointers. However, by using eglUnbindWaylandDisplayWL we can force the cleanup to happen before wl_display_destroy. Which is what this patch does. Change-Id: Id9062de896b723838bcecac3902031e6b172a6de Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>