summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* QtWaylandEglClientHwIntegrationPrivate: includemocsLiang Qi2022-06-011-0/+2
| | | | | | | Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-103295 Change-Id: I27804dc4a26050931ff7d99aaee319d88b254b00 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QtWaylandCompositorQtShell: includemocsLiang Qi2022-06-013-0/+6
| | | | | | | Pick-to: 6.3 Task-number: QTBUG-103295 Change-Id: Ib8d24b06b22711b6fa6d3f6f15729cad7f3edd07 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QtWaylandTextureSharing: includemocsLiang Qi2022-06-012-0/+4
| | | | | | | Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-103295 Change-Id: I8b26c642488928523effbf9be9ac05939067a493 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QWaylandXdgShellIntegrationPlugin: includemocs - qt6Liang Qi2022-06-011-0/+2
| | | | | | | Pick-to: 6.3 6.2 Task-number: QTBUG-103295 Change-Id: Iff8a76926a8a0b581a0290b5b6ab44453ac774ec Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QWaylandXdgShellIntegrationPlugin: includemocsLiang Qi2022-06-011-0/+2
| | | | | | | Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-103295 Change-Id: I974dbcd67bc4a45cf18d0fdf197bcaeb12c633b4 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QtWlShellIntegrationPrivate: includemocsLiang Qi2022-06-011-0/+2
| | | | | | | Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-103295 Change-Id: I000dd8b5fa13747acfa8c12df4203dfdaa48b9c4 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Add missing QT_{BEGIN,END}_NAMESPACELiang Qi2022-06-013-0/+12
| | | | | | | | | Found by the includemoc script complaining. Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-103295 Change-Id: I56513a331c098c1511b0b0091902f1e83f61e5c2 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Add a TU for qwaylandcompositorquickextensions_p.hLiang Qi2022-06-012-1/+37
| | | | | | | | | | | | Just to include the moc file. It's otherwise the only one left in mocs_compilation.cpp and we might want to introduce a warning later on if something ends up in there, to maintain the newly-established includemocs level. Pick-to: 6.3 6.2 Task-number: QTBUG-103295 Change-Id: Ic4dd94ab1a6ca20c4e0350066c875895841f4168 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Add a TU for qwaylandquickextension.hLiang Qi2022-06-012-1/+39
| | | | | | | | | | | | Just to include the moc file. It's otherwise the only one left in mocs_compilation.cpp and we might want to introduce a warning later on if something ends up in there, to maintain the newly-established includemocs level. Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-103295 Change-Id: Iafaf87d8624f0162acd1a3063b5c4fac83406194 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Client: fix mouse cursor restoring check when cursor enters the content areaIlya Fedin2022-06-011-1/+1
| | | | | | | | | | | | | | | In a32cc186e645e8dac6dd7089f374f6d20e924f39, windowContentGeometry was changed by adding shadow margins, but the check ensures that the point inside the content area rather than the decoration and windowContentGeometry is smaller than the decoration geometry now as it excludes the shadow. Creating the geometry from surfaceSize fixes it. Pick-to: 6.3 6.2 Change-Id: If20a387b6864c1bc961352654f827a45cee77bd1 Reviewed-by: Jan Grulich <jgrulich@redhat.com> Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
* client: Avoid protocol error with invalid min/max sizeEskil Abrahamsen Blomfeldt2022-05-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the application sets an invalid minimum and maximum size (where the minimum is higher than the maximum), then we would blindly send this over the protocol, which is a protocol error according to the spec. Qt compositors will warn about this and ignore the size, but mainly because "but there's no matching error defined" according to the comment. Other compositors may close the connection when this happens. To avoid crashing the app based on bogus min/max size, we make sure we never send a maximum size which is less than the minimum size. This corresponds to the behavior of compositors which accept the size without raising an error: the minimum size takes precedence. Note that 0 means "no maximum size" in the protocol, so we cap the value before applying this logic. [ChangeLog][Client] Fixed an issue where setting an invalid minimum and maximum size on a window would cause some compositors to raise a protocol error. Pick-to: 6.2 6.3 Fixes: QTBUG-102626 Fixes: QTBUG-103391 Change-Id: I4004a4550a9fe3dae6a27169b4d1a9a616e21841 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* CMake: use the --build-macro option to qtwaylandscannerThiago Macieira2022-05-192-4/+31
| | | | | | | | | So we get correct exports different from imports, which are required for GCC 12 with -mno-direct-extern-access and protected visibility. Change-Id: If05aeeb7176e4f13af9afffd16e856de1f4f68d6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qtwaylandscanner: add a way to use an build macro in the generated codeThiago Macieira2022-05-191-22/+27
| | | | | | Change-Id: If05aeeb7176e4f13af9afffd16e85611ff7c42f2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Replace QScopedPointer with std::unique_ptrThiago Macieira2022-05-116-14/+14
| | | | | | | | | | | | | As the warning asked. qwaylandshellintegrationfactory.cpp:67:28: warning: ‘T* QScopedPointer<T, Cleanup>::take() [with T = QtWaylandClient::QWaylandShellIntegration; Cleanup = QScopedPointerDeleter<QtWaylandClient::QWaylandShellIntegration>]’ is deprecated: Use std::unique_ptr instead, and call release(). [-Wdeprecated-declarations] As a drive-by, change *foo.get() to *foo. Pick-to: 6.3 6.2 Change-Id: I7fb65b80b7844c8d8f26fffd16e97fe161d6a67a Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* client: Mark return values as unused to suppress compiler warningsJanne Juntunen2022-05-112-2/+4
| | | | | | | | | | Return values of two write() functions were ignored, causing warnings which were treated as errors on webOS emulator build. Fixes: QTBUG-103378 Pick-to: 6.3 Change-Id: Ifc2e944dee376973b69220b7f75dc346c0a71e71 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* compositor: Fix build without xkbcommonSamuli Piippo2022-05-101-1/+1
| | | | | | | | | | | This amends 4910b7adfa706520cd5180d5384b999488550aef. QWaylandKeyboardPrivate::resetKeyboardState() is behind an #if. We need to match the condition for the definition as well. Fixes: QTBUG-103341 Change-Id: Ib0b5b6284cac10a0cb5d53fca08e0d7226e7240a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@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>
* Fix: Access nullptr returned by QWaylandSurface::client()Roman Genkhel2022-05-101-1/+1
| | | | | | | | | surface()->client() could return null at the moment when QWaylandQuickItem::takeFocus invoked, which cause using nullptr Pick-to: 6.2 6.3 Change-Id: I89432882bd7117f45bac889bc85b2f86c77b21e8 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Compositor: Re-enable touch events for Wayland clientsEskil Abrahamsen Blomfeldt2022-05-041-0/+1
| | | | | | | | | | | | | | | | | | | As documented, setAcceptTouchEvents() would be implicit in calling setAcceptedMouseButtons() in Qt 5, but in Qt 6, this was changed. The result was that QWaylandQuickItems would never receive any touch events in Qt 6, even though the touchEventsEnabled flag is set by default. To fix this, we add an explicit call to setAcceptTouchEvents() to ensure the same behavior as we had in Qt 5. [ChangeLog][QtWaylandCompositor] Fixed a bug where multi-touch would not work with Qt Wayland Compositor. Pick-to: 6.2 6.3 Fixes: QTBUG-102829 Change-Id: Idc99c56a7cc8651da844be3ea238b8537891dd1f Reviewed-by: Liang Qi <liang.qi@qt.io>
* Clear keyboard modifier state when application deactivatesEskil Abrahamsen Blomfeldt2022-05-034-8/+53
| | | | | | | | | | | | | | | | | | | | | | 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>
* Allow multiple client buffer integrations to initializeEskil Abrahamsen Blomfeldt2022-05-034-25/+23
| | | | | | | | | | | | | | | | | | | | | | | | | This amends 585f20dce37c398d8b2e6367008e3329dac79e24 where support for multiple client buffer integrations was added. Previously, this would not work unless you also set QT_WAYLAND_IGNORE_BIND_DISPLAY in the environment, because we would fail if eglBindWaylandDisplayWL() returned false, which it will when the display is already bound. Instead, we assume the display is correctly bound when the function returns false, and then we make sure we unbind from the same integration that originally did the bind. The patch adds unbind to the destructor of linux-dmabuf and eglstream integrations. This was previously missing. [ChangeLog][QtWaylandCompositor] Enabled support for multiple client buffer integrations without the need to set the QT_WAYLAND_IGNORE_BIND_DISPLAY environment variable. Fixes: QTBUG-101366 Change-Id: Iefeb865b540d96a55d3be9b9c1fb41bf388638ca Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* QtWaylandClient: use the CMake exports.h supportThiago Macieira2022-04-2861-87/+81
| | | | | | | | | | | | The one in qtwaylandglobal.h was wrong. It just happened to work on Linux because the lack of import wasn't an error... until GCC 12 with -mno-direct-extern-access. Pick-to: 6.3 Change-Id: If05aeeb7176e4f13af9afffd16e8535b469f9158 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* doc: Add missing qml module landing pagesEskil Abrahamsen Blomfeldt2022-04-285-0/+103
| | | | | | | | | | When these are missing, external links to the contents of the modules break. Any \inqmlmodule should always have a corresponding \qmlmodule. Pick-to: 6.3 Fixes: QTBUG-102379 Change-Id: Id800e1ac3976957869f4a521f69f0190fb7eba5a Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Fix deprecated warningAllan Sandfeld Jensen2022-04-271-1/+1
| | | | | | | | | Use QMetaType instead of QVariant types Pick-to: 6.3 Change-Id: I92248cc5eff82c1dc20f7cad11bdeeccc64a5605 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Liang Qi <liang.qi@qt.io>
* Use QPlatformWindow's API as much as possible in QPATang Haixiang2022-04-201-5/+5
| | | | | | | | | | When using highdpi, window->geometry != platformwindow->geometry. In QPA we should use QPlatformWindow's API. Fixes: QTBUG-102601 Change-Id: Ib4ff2edbc045cf441cd2d594d502875417eb4917 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* use poll(2) when reading from clipboardKenneth Topp2022-04-141-7/+8
| | | | | | | | change clipboard read away from select(2) call which can fail when an application has large number of open files Change-Id: I6d98c6bb11cdd5b6171b01cfeb0044dd41cf9fb5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Fix QWaylandSurface::isOpaque property documentationTopi Reinio2022-04-061-1/+1
| | | | | | | | | | The \property command accepts no type, only the name of the property. Task-number: QTBUG-102185 Change-Id: Ia779a8c4097c7f4f1d1080b0e75114cea947578a Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Doc: Fix documentation warnings and enable doc testing in CITopi Reinio2022-04-063-7/+13
| | | | | | | Pick-to: 6.3.0 6.3 Fixes: QTBUG-102185 Change-Id: Ib2f6da8d7af63ef89dba2701bda562722dd9a12f Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* client: Synthesize enter/leave event for popup in xdg-shellLiang Qi2022-04-041-0/+27
| | | | | | | | | Fixes: QTBUG-100148 Pick-to: 6.3 6.2 5.15 Change-Id: I45e3156d7942cff9968674c0b253d15be7235921 Reviewed-by: Tang Haixiang <tanghaixiang@uniontech.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix format of qt_attribution.json filesKai Köhne2022-03-311-3/+3
| | | | | | | | | | | Also fix a typo in the license name. Amends db3df0b3b439a Pick-to: 6.3.0 6.3 Fixes: QTBUG-102148 Change-Id: Ic231a4b744864c19190d428a9a2fc5101ffa77f0 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix to have presentation feedback sequence timelyJungi Byun2022-03-312-3/+7
| | | | | | | | | | | | | | In the case connections in PresentationFeedback are QueuedConnection, there are sometimes a signal to be connected is emitted before creating another connection on the signal from the connection's slot method, and this makes wrong feedbacks. In order to send proper feedbacks to clients, create related connection earlier and make to work properly by checking some conditions. Pick-to: 6.3 Change-Id: Ic8f02139ca08713c419b0341b9a1e8add6f5a095 Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Move internal function to private classPaul Olav Tvete2022-03-294-16/+15
| | | | | | | checkAndRepairModifierState() was never meant to be a public function. Change-Id: Ia8946523b5ae79170490dc78a509ed1e132d9832 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* client: add ScreenWindowGrabbing capabilityLiang Qi2022-03-241-0/+2
| | | | | | | | | On Wayland, there is no protocol to do it yet. Task-number: QTBUG-100792 Task-number: QTBUG-101145 Change-Id: I4bfef2920547babf0ccc00a27062d0db77ae5b7f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* client: Avoid trying to read/cancel read if wl_display_read_events failedDavid Edmundson2022-03-231-0/+3
| | | | | | | | | | | | | | | | wl_display_prepare_read and wl_display_read_events/wl_display_cancel_read must come as matching pairs. Otherwise we set libwayland's internal read count to a negative number and causes all types of deadlocks. If prepareReadQueue fails but we haven't explicitly quit waitForReading returns a success statement but we haven't opened anything. Pragmatically most times wl_display_prepare_read fails it's because of a wayland error which is handled by exiting anyway, but it is better to err on the side of safety. Change-Id: Ia29c3217622d97594404be3daf4c50338a1d3fb0 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Client: Fix up thread usage for mSurfaceDavid Edmundson2022-03-222-3/+5
| | | | | | | | It didn't make sense that mSurface was protected, but the mutex was not. Also try to improve documentation. Change-Id: I2f59557cccbb2d6f0b2772ce3c8a2dab01167a6c Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Fix race condition on mWaitingForUpdateDeliveryPaul Olav Tvete2022-03-212-5/+3
| | | | | Change-Id: I0e91bda73722468b9339fc434fe04420b5e7d3da Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Revert "Client: Remove mWaitingForUpdateDelivery"Paul Olav Tvete2022-03-212-3/+9
| | | | | | | | | | | | The reverted commit introduces a severe performance regression when a client window is resized while a QtQuick renderthread animation is running. This reverts commit feb1a5c207c13d0bf87c0d8ad039279dbf8cee9e. Fixes: QTBUG-101726 Change-Id: Ib5b52ce06efec8c86fada1623c2af82099e57fc6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Guard mResizeDirty by the correctMutexDavid Edmundson2022-03-171-3/+4
| | | | | | | | | mResizeDirty is used in the GUI thread in setCanResize which can be called from the GUI thread. It is queried and set whilst the resizeLock is held. We need to guard our usage. Change-Id: I5f8dcf8aa2cb2c4bb6274103df1da9e3e268605a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Send correct modifier state for non-windowsystem key eventsPaul Olav Tvete2022-03-154-2/+60
| | | | | | | | | | | | | | | | | | | | | In the wl_keyboard protocol, key events and modifier state is sent separately. Currently, the modifier state is maintained by a QWindowSystemEventHandler that filters low-level QPA events. This does not work for key events that are injected from other sources, such as virtual keyboards, or remote UI connections. This change does not try to fix the architectural issue. It is just a workaround that detects when we try to send a key event with a modifier state that does not match the previous modifier state sent through wl_keyboard. In that case we send a wl_keyboard.modifiers() event that matches the modifiers of the key event. This is somewhat fragile, and will probably cause weirdness if native key events are interleaved with injected events, but it should behave better than the previous situation. Change-Id: Ic80198e7728edacfdcaf426bae54508a6576e8cd Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Also accept a client text-input extension registered too lateDominik Holland2022-03-153-6/+21
| | | | | | | | | | | | | | | When the wayland surface gets initialized at the compositor side, the compositor checks whether the text-input extension is available and connects to its signal. If the client doesn't create the extension before the initialization on the compositor side happens, the InputMethodControl of the surface is not connected to the text-input extension and doesn't work correctly. In this case the connection should be made once the extension is available. Change-Id: Icdd015f1d7853fe2f191b91a87d25f196f6b7769 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* wayland: do not rely on transitive includesFabian Kosmale2022-03-1114-0/+19
| | | | | Change-Id: I149e04d31ef3e897e25a91450427237069af4c34 Reviewed-by: Liang Qi <liang.qi@qt.io>
* client: update button state and etc in pointer_leave()Liang Qi2022-03-101-5/+5
| | | | | | | | | | | | The cleanup work needs to be done even the surface is null, for example, a window was closed in mouse press handler, then will not get a mouse release. Fixes: QTBUG-100942 Pick-to: 5.15 6.2 6.3 Change-Id: I637a6744909ddbe62bdeba6b21494e5a6ae7fa9f Reviewed-by: Tang Haixiang <tanghaixiang@uniontech.com> Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Add globalRemove to QWaylandClientExtensionDavid Redondo2022-03-094-21/+48
| | | | | | | | | | | | Adds support for handling of removal of the relevant global to QtWaylandClientExtension. The user is responsible for destroying the object once it becomes inactive to match the behavior on destruction. Two signals for globals and their removal are added to QWaylandDisplay to make it a bit nicer to use in a more "Qt-way". The addRregistryListener function is kept for now until other places are ported. Change-Id: I4ccbaa32e18a5ae15871aa23639e2b4a372cc34e Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Make sure all private headers include at least one otherThiago Macieira2022-03-0853-36/+84
| | | | | | | | | | See script in qtbase/util/includeprivate for the rules. Since these files are being touched anyway, I also ran the updatecopyright.pl script too. Change-Id: Ib056b47dde3341ef9a52ffff13ef677e471674b6 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* client: set_constraint_adjustment() for popups in xdgLiang Qi2022-03-081-0/+4
| | | | | | | | | | | | See also https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml#n234 . Kudos to Greg V for his original patch in jira. Fixes: QTBUG-87303 Pick-to: 5.15 6.2 6.3 Done-with: Greg V <greg@unrelenting.technology> Change-Id: I57df9aedea7cc6f0b6fa142a6fc6c3bdc98324c8 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Allow creating popups from non xdg-shell parentsDavid Redondo2022-03-081-4/+4
| | | | | | | | | It's possible to create xdg-popups with a null parent and set a parent via some other protocol. This will be useful for the work of allowing multiple shells in one process. Change-Id: I1fb9035be4b3999ff284bcc5c60eb4142cee1294 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add attribution for text-input v1 protocolEskil Abrahamsen Blomfeldt2022-03-031-2/+19
| | | | | | | | | This was not added together with the protocol. This change also disambiguates v1 and v2 as two separate entries, since the licenses are different. Change-Id: I2309aced67ae69bc2d8117688e5d7b1074e8bf8f Reviewed-by: Dominik Holland <dominik.holland@qt.io>
* Update 3rdparty attributionsEskil Abrahamsen Blomfeldt2022-03-031-2/+20
| | | | | | | | | | | The XDG activation protocol was added with no attribution and the Wayland protocol version was updated without updating the version in the XML. Pick-to: 6.3 Fixes: QTBUG-100901 Change-Id: Ifaaf69b7d498ea7106d4bfd6ada978475447d296 Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
* QWaylandBufferRef: fix relational operatorsMarc Mutz2022-02-284-11/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The relational operators were incorrectly declared as mutable member functions (they should have been const). In C++20 builds, this leads to ambiguities between these operators and their reversed versions. Even before C++20, one couldn't equality-compare two const QWaylandBufferRefs. The problem is that we cannot fix this in a forwards-binary-compatible way, because there's no way to implement the operator for lhs = const and rhs = const without adding a new symbol or breaking encapsulation of the class. Therefore, libQtWaylandCompositor is unfixably broken in Qt ≤ 6.2, unless we break forwards-BC as per this patch. There doesn't appear to be a specialized test for this class, so just check overload resolution using static_assert()s. [ChangeLog][QtWaylandCompositor][QWaylandBufferRef] Two const QWaylandBufferRefs can now be compared for equality (before, the LHS was not allowed to be const). [ChangeLog][QtWaylandCompositor][Potentially Source-Incompatible Changes][QWaylandBufferRef] The relational operators are now hidden friends (they were member functions before) which are only found by unqualified lookup. Pick-to: 6.3 Fixes: QTBUG-100845 Change-Id: If0ef6b3b6dafc6c9bf4dca02c5f26a08ed73815d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Reduce memory leakageUlf Hermann2022-02-231-0/+3
| | | | | | | We need to clean up the event queue when we're done. Change-Id: I13a9eb77e978f4eab227a3a28dab8ebc8de94405 Reviewed-by: David Edmundson <davidedmundson@kde.org>