| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
We need to clean up the event queue when we're done.
Change-Id: I13a9eb77e978f4eab227a3a28dab8ebc8de94405
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
| |
The rect is in the global coordinate system, while the opaque region
must be in the surface local coordinate system.
Change-Id: I75042b4d779dfd4dfe610aad1f0387879f11b048
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the client says it's fully opaque through the
set_opaque_region request, we can disable blending
for the item and potentially improve performance a
little bit.
[ChangeLog][QtWaylandCompositor] The compositor now respects
the opaque region set by the client and no longer applies
blending or overdraw for fully opaque windows.
Fixes: QTBUG-100373
Change-Id: Iaa68fbf1f086d926c9c1867d981a63810f4ca855
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This avoids "No update on item size as the buffer is currently
locked" warnings when windows are hold in a model and a window is
closed and removed from the model. The problem was apparent in many
QtApplicationManager examples.
Pick-to: 6.2 6.3
Change-Id: Icb9d4cd37d3a4a8ee4214a92aed8422794729d9d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
| |
Pick-to: 6.3
Change-Id: Ifda9223dbf9d7c615de6540250a23a6687daecd7
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The custom event queue was removed in
302d4ffb8549214eb4028dc3e47ec4ee4e12ffbd (2015) so the comment about not
being able to use the inbuilt round trip method no longer applies.
This fixes a real world problem. Use of a blocking round trip should not
process non wayland events. Doing so can lead to misbehaviour client
side as things happen out of order. The move to the event thread created
several regressions as we now get events before the QGuiApplication is
fully constructed.
Change-Id: I650481f49a47ed1a9778c7e1bc3c48db6e8f0031
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- None mapping to no style.
- Default/Underline mapping to underline.
- Highlight/Selection mapping to background color/text color with highlight/highlight
text with underline.
- Active/Inactive mapping to bold text with underline.
- Incorrect mapping to red wave underline.
Pick-to: 5.15 6.2 6.3
Change-Id: Iab51d671b8f83aece8596f7f7610de19343fcceb
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|
|
|
|
|
|
|
|
| |
Otherwise the cursor would be hidden even if preedit is empty.
Amends 719a55be13bdadfa659a732755f280e276a894bd
Pick-to: 5.15 6.2 6.3
Change-Id: I320733b917779b7b51aa4a28eaea411fdb10a318
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Windows' geometries should be updated when changing decorations.
Fixes: QTBUG-100467
Pick-to: 6.3 6.2 5.15
Change-Id: I5ec9968aa48422776d184a8fa2f5d86ecc3ca5c3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When window decorations are turned on/off, a timing issue might happen
with accessing deleted decorations.
A boolean value, mWindowDecorationEnabled, will be used instead of
mWindowDecoration.
Pick-to: 6.3 6.2
Fixes: QTBUG-59627
Change-Id: I5514a408d89340fdbf481721ea2dc4bf62078852
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
Unused lambda capture and private variables that clang complains about.
Pick-to: 6.2 6.3
Task-number: QTBUG-100249
Change-Id: I204eea8d4fc0c22542224d94bae113fa66870d15
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, mWaitingForUpdateDelivery is shared between the main thread
(doHandleFrameCallback()) and the frame callback event thread
(handleFrameCallback()), however the access to it is not synchronized
between both threads. On the other hand, QWaylandWindow
already ensures not to create a frame callback if there's already one
pending.
This change removes mWaitingForUpdateDelivery flag because it should be
already covered by mWaitingForFrameCallback and to remove unsynchronized
shared state between threads.
Change-Id: I0e5a25d18d1e66c4d7683e7e972330c4d7cbbf38
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
| |
... and make the type registration function private. As we already have
a private global header, let's use it. The public global header should
not have the "We mean it" warning either.
Change-Id: If4424652528c7886ce56e676d633aa3968f3772b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The dmabuf_server_buffer test links to EGL and libdrm and the vulkan_server_buffer
one needs to link to wayland-client
Fixes: QTBUG-100475
Pick-to: 6.3 6.2
Change-Id: Idbcef88bba0a9d5ef7bfeaa55668c94caee6ab83
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
1. Adds explicit to new constructor
2. Adds an empty destructor for consistency to new class
3. Moved new data member into private class.
Pick-to: 6.3
Change-Id: Ib76c1cbea214693c929ced8651bdac92c2dbcd4e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.2 6.3 5.15
Change-Id: I8f346def616606a6c5540856bd08a84ee7ed5ca2
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is used by weston for forwarding virtualkeyboard related
event from keyboard applications to a Qt client.
Right now Qt only supports text-input-unstable-v2, v4 and the
special qt-input-method protocol, while weston only supports
text-input-unstable-v1.
Without this, a virtual-keyboard application can't be used
with a Qt client within weston.
Change-Id: I9a34a87100854bb0b0f76762ced56419e70c297e
Reviewed-by: Inho Lee <inho.lee@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the combination of the name of the protocol interface and the name of
its request is same as another interface name, it can cause problem in
calling the constructor instead of method generated by wayland-scanner
when calling request.
For example, if you have an interface named "foo" and its request named
"bar", it might conflict with another interface named "foo_bar".
A real example for this is presentation_time protocol which has
a request "feedback" in the interface "wp_presentation" while it also
has another interface named as "wp_presentation_feedback".
Pick-to: 6.3
Change-Id: I7c007978d4aa404d10441643d5461372f33954e5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
| |
Pick-to: 6.2 6.3 5.15
Fixes: QTBUG-99965
Change-Id: Ib7fcf92973b4e559713ae27ad0c7f843f9122daf
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Touch events may be ignored if we set time stamp in handleTouchEvent()
when handling touch events queued in wayland socket in main thread.
So use time stamp from wayland compositor.
Task-number: QTBUG-100150
Pick-to: 6.2 6.3
Change-Id: I14fd3791b4d29177c71662d1cf26c0eed0abb767
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Seokha Ko <seokha.ko@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is no reason to keep eglConfig value as a member variable. Even
this can result in creating wrong surface from the current surface.
And it makes no sense to change alpha bits of the surface format by
supporting decorations.
Task-number: QTBUG-97916
Pick-to: 6.3 6.2 5.15
Change-Id: Iaa395d36e83373ea197dc5e14424fcb62cd2cd8b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
qwaylandxdgshell.cpp:508:15: warning: unused variable ‘activation’
Pick-to: 6.3
Change-Id: I0e5f6bec596a4a78bd3bfffd16c995a0b7feef5c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Otherwise the configure script won't understand command line options
like -no-feature-egl-extension-platform-wayland because the
subdirectory configure.cmake files are only loaded by the configure
script when there are accompanying qt_cmdline.cmake files.
Pick-to: 6.2 6.3
Fixes: QTBUG-99802
Change-Id: Ifd6ea6f366ac5fe09a9eafe3be7d889044caa52f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-94446
Change-Id: I2d28debe576cecac1c0c4050e36487094258a824
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, quick-related headers included in the module header
conditionlessly what makes it fail with PCH when Qt is built without
qtdeclarative.
Fixes: QTBUG-97593
Pick-to: 6.2 6.3
Change-Id: Ida73f3369982594aae9e14160f6966fe57c7e089
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EGL_NO_X11 has been replaced with USE_X11, thus breaking all existing
code out there, including Qt:
https://github.com/KhronosGroup/EGL-Registry/pull/130
QtGui/private/qt_egl_p.h now defines USE_X11 whenever we do not define
QT_EGL_NO_X11.
See also 4cc5428548cb8ab973e4b0281dd123d59bfaf6a0 in qtbase.
Fixes: QTBUG-99746
Pick-to: 6.3 6.2
Change-Id: If67b9f1f37dac59bb518010fec08944bc181766d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
Add touch event keyboard modifier for wayland, which is done in qpa
xcb, which is very convenient on tablets with keyboards.
Change-Id: I4e6ed369f3444da41d06f9a9a83addf7de0a4e91
Reviewed-by: Povilas Kanapickas <povilas@radix.lt>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
| |
Fixes: QTBUG-99760
Pick-to: 6.3
Change-Id: I28e6f7e5dfe605224a654c98b51cc1f686d648b2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Frames are processed by mFrameQueue in Qtwayand. However, in vulkan
backend, frames are sent by handleUpdate() but waitForFrameSync()
is not called which should handle frames in mFrameQueue.
For the current vulkan backend, frames are only handled by drivers
like mesa. So in the current vulkan backend, some particular animations
don't run or are slow because frames sent by qtwayland are not being
handled.
Fixes: QTBUG-96222
Change-Id: Ifbab385ca619ef9461104eb8bd778f17093a56b5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: YoungSun Park <cathy.park@lge.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When CSD is toggled while a window is showing, it would change the
size and recreate the buffers, but since the widget area remained
the same size, we would not trigger a redraw. The result was that
when you got any update to the window, it would redraw the widgets
that had changed, and the rest would be transparent.
Since this is a fairly specialized case, we fix it the simple way,
by just issuing an extra update when it happens.
This also required an update to the surface test, since there is
an additional buffer commit in the beginning of the sequence now.
Pick-to: 5.15 6.2 6.3
Fixes: QTBUG-95032
Change-Id: Ic4bdb9c66a2ea76546926dd622f2d2dac5dce10c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Wayland, then the mesa driver is in use, calling
eglDestroySurface() while OpenGL commands are being
executed may crash. While this means the driver does
not operate by the specs in this case, the driver is
so popular that it makes sense to work around it.
To work around this, we read-lock the surface while
rendering and wait for a write-lock before we destroy
the EGL surface.
[ChangeLog][QtWaylandClient] Fixed a crash on shutdown that could
happen with some graphics-heavy applications when running on Mesa
drivers.
Pick-to: 6.3
Fixes: QTBUG-92249
Change-Id: I8b8461066cc9f948dc44ddeeddaa6e7d92b76f04
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.3 6.2 5.15
Change-Id: I832fbb22d973b36ac4ab51570fc53bc2e4c3ed58
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
| |
Fixes: QTBUG-90530
Pick-to: 6.3 6.2 5.15
Change-Id: Ib1f36e1cb89352dfac8a385a7b097cfc0226e813
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the protocol, client knows accurate presentation timing
which can support vsync-based rendering for smooth video
playback with video/audio synchronization.
Also, the protocol provides metrics from client to on-screen
for optimizing frame latency.
Tested with weston-presentation-shm client which also requires
xdg shell.
Change-Id: I3b286420e7221aa1c9b81bf7ae9ae70d3cbe6eb6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
| |
Useful for the current work of allowing multiple shells in one process.
Change-Id: I68424687df9069fd4339f2764649db1df70a6c9a
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is no longer necessary now that the recommended way of creating
custom shells is to use QWaylandShellIntegrationTemplate. This also
restores the old internal API in use by existing shells.
Task-number: QTBUG-94330
Change-Id: I0fa0ba0d928baa2edf5d68e879558081026436c8
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In certain cases, most notably when performing drag and drop operations
with touch, the QDrag object gets deleted before data_source_send is
executed. This then tries to access a deleted data_source, crashing the
client.
To avoid this, we indicate we want the QDrag object to stay around and
then delete it in QWaylandDrag::finishDrag, which with data_device v3 is
guaranteed to be called after everyone is done with the data source.
Change-Id: I6a2f5a219f58d1b721a9fec33c57d26d2c522ec9
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
| |
Change-Id: Ib5c8d0c6a209308c2c1a7f5e45d8866ba0127d81
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DataDeviceV2 fixes a leak of DataDevice resources.
DataDeviceV3 brings multiple improvements:
Action negotiation. The source announces which actions are supported,
the target then announces which subset of those action the target
supports and a preferred action. After negotiation both the source and
target are notified of which action is to be performed.
Drag sources are now notified when contents are dropped and when a
client has finished with the drag and drop operation.
A good test is the draggableicons example in QtBase.
Change-Id: I55e9759ca5a2e4218d02d863144a64ade53ef764
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These extensions were disabled because they did not work properly and they
are no longer very useful. It does not make sense to keep
non-functional code around when it is unlikely to be fixed.
[ChangeLog][Extensions][The xcomposite-egl and xcomposite-glx shell
extension protocols have been removed.]
Task-number: QTBUG-97985
Change-Id: I0ad37bd2b35551d7b2b1e5e7d4e77a51037864ad
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Previous pendingConfigureSerial can be overwritten regardless of the
current configuration. With this patch, the client surface can use
correct serial for xdg_surface.ack_configure.
Fixes: QTBUG-95962
Pick-to: 6.2 6.1 6.0 5.15
Change-Id: I849d2daf4acc8ef6e7f8528af9c5a57f671f43e6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
| |
Change-Id: If9a610004ae66f8e829d9e602ab249ee9f527eaa
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
This is now required to use QObjectPrivate::connect.
Fixes: QTBUG-98897
Pick-to: 6.2
Change-Id: Ibe98404c6e220da43cd08ab732821c874c39bc18
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The xdg_output.name property is available only since version 2.
Fixes: QTBUG-98010
Pick-to: 6.2
Change-Id: I1051b8e9d99fe27f0170ea202deac9cdad9818ae
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Finish implementing support for axis_wheel_tilt. Some code existed
already, hence only debug and unit test are changed
- The unit test is renamed to seat as the only change is new events.
There is nothing deprecated and therefore no need to test backwards
compatibility.
- Set our supported version number to 7
No version bumps of libwayland are needed, our current minimum version
includes wl_seat v7.
Task-number: QTBUG-96258
Change-Id: Ief18bc5cef3fcbd0699dd52ccad513d47c6c010b
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|