| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This happened when running qmlplugindump for QtWayland.
[ChangeLog][Compositor] Fixed a crash when destroying WaylandSurfaces and
WlShellSurfaces which had not yet been initialized.
Change-Id: Ia35cc1ccddc6146453d4dbba0ffd41a012a526e3
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This could happen if there were no seats.
Change-Id: I4c88a5768289e2ac8a736efaa14e37d499de01c9
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It would return false regardless of whether we owned the selection.
Change-Id: I6df394d8dbceeccb6eb6d0670b4351af1a158491
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
And add a test to verify we've fixed it.
Change-Id: Ic6d5e64b3000444465935f7caf7e32ec9c4f1012
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also, verifies that we fixed a recent bug about QClipboard::dataChanged not
being emitted when the clipboard is invalidated due to losing focus.
Change-Id: Ie92b618a4f673c21d6582979249700aef8785536
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I311a5d422f31347029795dbd2479a771ae93c01f
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
UTF-8 byte array cannot be split in random position and assume getting
valid content on resulting parts. Switched chunk size to be based
on characters, encoded size will vary but don't think that should matter.
Change-Id: Ic41ea16d2111b1620993b60fdbc6e739929f25d7
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This warning can save some time when trying to understand why some
qtbase auto tests are failing on headless Weston (which doesn't have
seats at the moment).
Change-Id: I361546611d12bff8a465af5bb103f61e80d73a15
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/client/qwaylandwindow.cpp
tests/auto/compositor/compositor/tst_compositor.cpp
Change-Id: Iacfcae577a4a99c847694ae3a2c6e3e9ae050817
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
deliverUpdateRequest
[ChangeLog][QPA plugin] Fixed a 100 ms freeze that would occur if applications
did not draw after receiving a deliverUpdateRequest().
QtQuick does this at the start of animations. This should get rid of those
backingstore warnings (and also remove a 100ms freeze before animations start
in those instances).
Fixes: QTBUG-76813
Change-Id: Id366bf4a14f402fa44530ae46e7b66d9988c14f6
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: John Brooks <john.brooks@qt.io>
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Using XDG_RUNTIME_DIR="." does not work after qtbase 5542785, and it was a
rather brittle solution anyway.
Fixes: QTBUG-79185
Change-Id: Iaf9ced66709cc6cbac8a2d54efc64e1a8c528561
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| | |
Change-Id: If684b523436a1beec36a137c73c5c39c948f87e3
|
| |
| |
| |
| |
| |
| |
| |
| | |
Was shadowed in 11f2e7df5 when fixing QTBUG-78969.
Task-number: QTBUG-78969
Change-Id: I933373b5233ae8b45cdab7c3ffd14a1502486ae8
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| | |
Fixes: QTBUG-78969
Change-Id: I4ecde3725b5307251070e331c97d96df328a3772
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Ie236fa47c23456b15414c3b3e89568b915979ebe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, we set the max length in QString character length, which means
UTF-16 characters (of potentially three bytes) counts as one character. The max
limit of libwayland, however, is in bytes (and the string itself is converted
to UTF-8).
Fix it by dividing the character limit by three because in the worst case each
UTF-16 character will use three bytes when UTF-8 encoded.
Fixes: QTBUG-78478
Change-Id: Idf4721894e0fe6f3cd92bdc6ada7b0ea4199ea63
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Effectively is a copy of the code in XCB. When the menu key is pressed,
a context menu event should be generated at the current cursor position.
The global position in the event isn't truly global as that doesn't
exist in wayland but should match client expectations.
Change-Id: Ib814883aba632ca5eec58730846e1762b680467f
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\ \ |
|
|/| |
| |/
| |
| |
| |
| |
| | |
Conflicts:
sync.profile
Change-Id: I6f6d44ec285d37e64e430303ef9a87ac7aaf3eb9
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-78177
Change-Id: I123e129f09ce8599e68be710147b07235ae9462a
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-78177
Change-Id: Id44794523511241b408e79383e438e52f769d62a
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We use a hand edited version for xdg-shell-v5, which is added through
src/plugins/shellintegration/xdg-shell-v5/pregenerated/xdg-shell-v5.pri so we
shouldn't need to add it through sync.profile.
Fixes: QTBUG-78210
Change-Id: Ida60f98c950b74132bd526cf44a4bf667cdce730
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Because they were checked in at 618d5093d5de082f9aaf32cca778c5eae6a8548d.
Fixes: QTBUG-76439
Change-Id: I1809b1424262dfe39e6cc177eec487d9ca364337
(cherry picked from commit b90a57a66f0862d8953d0b858d4e11007172cc79)
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We have a workaround for Weston not sending wl_touch.frame events after
the last wl_touch.up event. It calls Touch::touch_frame to generate a
fake event. The problem, however, is that it used to erroneously do this
on wl_touch.up events even when it was not for the last touch point.
This in turn, lead to extra frame events being inserted in the middle of
a touch sequence, effectively splitting up one touch frame into
multiple. Accumulated touch state would be handled prematurely,
preventing wl_touch.cancel from working correctly for instance.
This tests that we've stopped doing that.
Change-Id: Ic545bbb18c23b827e5fa07a642a374094d720dae
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Make sure touchPoint order doesn't change even though the compositor
event order does.
Task-number: QTBUG-77014
Change-Id: If6b8a930344836ca52cc12fe7f29c8ac863d81ba
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-78317
Change-Id: I66e35782470cedd4d3cfeed6ffdfd8d54bc0ba26
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QWaylandSurface::inputRegionContains(const &QPointF) was added in a
patch release. Expose it here and start testing it.
Task-number: QTBUG-77457
Change-Id: I9e5e487e1d93a2b1873a7e219eed9ef6b0a418b5
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-77457
Change-Id: I49df80f3e00d349fed273363cd2625b841c085c5
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\ \ |
|
|/| |
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/client/qwaylanddatadevice.cpp
src/client/qwaylandinputcontext.cpp
src/client/qwaylandinputdevice.cpp
src/client/qwaylandwindow.cpp
src/compositor/compositor_api/compositor_api.pri
src/compositor/compositor_api/qwaylandquickitem.cpp
Change-Id: Ice0d8c7d869c9c46113d6ee6ba3adf895a71d58f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We get around the "private" symbol found in wayland-kms.h by
substituting it with "priv", but doing that breaks the "private:"
keyword in type_traits.h.
So this patch forcibly includes math.h prior to s/private/priv/.
main.cpp:3:17: error: ‘priv’ does not name a type
#define private priv
^
In file included from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/cmath:43:0,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/math.h:36,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-util.h:34,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-server-core.h:32,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-kms.h:38,
from main.cpp:4:
/opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/ext/type_traits.h:71:24: error: ‘__if_type’ has not been declared
typedef typename __if_type::__type __type;
^~~~~~~~~
main.cpp:3:17: error: ‘priv’ does not name a type
#define private priv
^
In file included from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/cmath:43:0,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/math.h:36,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-util.h:34,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-server-core.h:32,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-kms.h:38,
from main.cpp:4:
/opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/ext/type_traits.h:114:24: error: ‘__if_type’ has not been declared
typedef typename __if_type::__type __type;
^~~~~~~~~
Change-Id: I2b42f37d5565833adcc065725119ab4912da82b0
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Since xcomposite-egl depends on the egl_x11 feature in qtbase, then this
should be explicit.
Change-Id: Ic1dce9526fb50f6f56e18abd58b69bcaed6d204e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ia7cfb1bc86945e08a2ff2c794afb405110e819f9
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Touch now accounts for fractional input in the same way as for pointer
input.
Task-number: QTBUG-77457
Change-Id: I18e633bf7c7033187a641f757b8b24f52479971a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This used to crash the client.
Task-number: QTBUG-76368
Change-Id: I855f3bda15b4b2bccbdb2aa8239e26c0eecf7cb3
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |\ |
|
| | |\
| | | |
| | | |
| | | | |
Change-Id: I5d587b79b96d2b44f1975419a658c259c63fa30d
|
| | | |\ |
|
| | | |/|
| | | | |
| | | | |
| | | | | |
Change-Id: Ic73262146f51a9e7f4ffab46511654ad70c4f514
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
+ e008c69e231169425e2ae602deabc0eb749376ab Fix compile error with -no-opengl
+ cde2fe3fba31b9b8d258f0663bc34009fd769efd Compositor: Map touch ids to contiguous ids
+ af9ec8a76d7e62444fadb518256fc58723fe5186 Client: Don't add all windows to activePopups
+ af00b80178138e55be7ea892a118e6357798e0f2 Don't crash if we start a drag without dragFocus
+ ec9057081f1094fbfeb11449bc533997731e4079 Client: Fix stuttering when the GUI thread is busy
+ a4e6f88f50d1a1dd56df77ce8b07b98aceb20ddc Client: Reset frame callback timer when hiding a window
+ acba020f1b6725e2d431636b1a2cfb075672ddcb Bump version
+ 5ca9f28f4b272d3265b97c16029071a0070195a6 Fix compilation with C++20
+ 25a46893782979c74f57ab725b1ce55fbfc4fa2f Fix the build when libs didn't get built
+ 3d5cec736ce17c6b40c52bb8966f8fc40b742664 Fix expose event compression
+ 43d8a3091894ceb4ab934167b2f3eda27564eb6d Backport texture sharing for NVIDIA
+ 86b0d64b6c44fd8c3c3dd133bf52239f5520e524 Client: Add safer fromObject function to scanner
+ 2838c7f33a0b2f40b026d00b3e00139f94c358e7 Fix incorrect conversion to straight alpha pixel formats
+ 3e96fa1df8d2bc0ec8ab66abae1f20439b786b40 Client: Fix large clipboard pasting
Change-Id: Ie61a19a3adb04e1280b2f70839778cf2c708a85b
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | | | |\ |
|
| | | | |/|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Conflicts:
src/client/qwaylandwindow.cpp
Change-Id: I89fefe5bfc247eeaad3981850efa0faaab3cb145
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The wl_surface can be destroyed whilst a render is happening. Calling
wl_surface::frame after the window is reset can crash as wl_surface is
null.
Fixes: QTBUG-77747
Change-Id: I139a9b234cb6acba81d6c1d5fa58629904a25053
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
QPointF::toPoint (which is what the QPoint versions of the events use
internally) uses qRound, which is not the right kind of rounding to
use with the QRegion we use for the input region.
This switches to use QPointF variants instead of QPoint wherever
possible, and then the correct conversion (with qFloor) is done once in
the new QPointF version of QWaylandSurface::inputRegionContains().
The compositor inputRegion test has now been updated to test the new
API.
[ChangeLog][Compositor] Fixed various rounding errors related to touch
and mouse input.
Fixes: QTBUG-77457
Change-Id: Ife2365abd56a239c34eee91310ab0e698a50d4ff
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 7f189ec10a9b3e9825dda30d3a8f86ee2e07b97f)
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Calling the QOpenGLContext::swapBuffers from
QGuiApplicationPrivate::processExposeEvent in some cases leads to
recursive calls of QWaylandWindow::waitForFrameSync. Since the
mWaitingForFrameCallback check in WaylandWindow::waitForFrameSync
is performed after the mutex is locked, the QMutexLocker tries to lock the
mFrameSyncMutex mutex in every recursive call, that leads to a deadlock.
This patch moves the performing of the mWaitingForFrameCallback check
before locking the mutex.
Change-Id: Ia2d834b7dd03fcd91bbe29a3a897b4db2d155527
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Rename mTouchPoints to mPendingTouchPoints, to clarify that they're the
accumulated state so far, which will be applied with the wl_touch.frame
event. QWaylandInputDevice::Touch::mPrevTouchPoints is no longer needed
and has been removed.
Fixes the following issues with the old approach:
- touchPointsReleased() only checked mTouchPoints, which was cleared on
touch_frame and populated again on touch_motion and touch_down, which
meant that it could return true even though there were still touch
points left. Leading to the workaround for missing wl_touch.frame events
on Weston being triggered to often.
- Touch focus was cleared on any wl_touch.up event, not just the last
one.
- The order of the touch events was not stable and relied on the order
of the events (QTBUG-77014).
Fixes: QTBUG-77014
Change-Id: Ic3ecdc87e77b0e0276afefd127ad2b965142cbd4
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
af00b801 fixed a crash when starting a drag without a valid focus, but
there is still a problem, because QDrag::exec will never return because
it's waiting indefinitely in an event loop.
- QWaylandDataDevice::startDrag can now fail by returning false.
- When starting a drag fails, we cancel the drag through
QWaylandDrag::cancelDrag wrapped in invokeMethod.
- Also, don't unnecessarily create a data_source if we cannot start a
drag.
[ChangeLog][QPA plugin] Fixed a freeze that happened when starting a
drag-and-drop operation without a valid source surface.
Change-Id: Iea19b0c92c196a44d1274a966bee4ff519632d34
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | | | |/
| | | |/|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The define was only set when building Qt, not when including public
headers in application code. Therefore, the sizes of objects did not
match between the client code that calls new and the constructor inside
Qt.
Unfortunately, adding the additional members breaks binary
compatibility. This has already happened between 5.11 and 5.12. It just
wasn't apparent from the headers. If we removed the members again now,
we would break binary compatibility again. Therefore, the best course of
action seems to be acknowledging the break and adding the members also
in the headers.
[ChangeLog][Compositor][Important Behavior Changes] Between
version 5.11 and 5.12 binary compatibility for the wayland compositor
module was broken by adding an additional member to various classes.
This was not apparent from user code as the member was behind an #ifdef
which would only be set while compiling Qt. As several versions of Qt
incompatible to 5.11 have already been released now, rolling back the
incompatible change would introduce further incompatibility. Therefore,
the change is made consistent by unconditionally adding the member to
the headers.
Fixes: QTBUG-75677
Change-Id: I3c1ee309ad8e0cd0b6389a76fd1d91e6e2be495c
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|