| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: Id7e59c8258165ebca9bcb552d5a4e9872d872232
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
Done-with: Greg V <greg@unrelenting.technology>
Change-Id: I57df9aedea7cc6f0b6fa142a6fc6c3bdc98324c8
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 59a5fe99e1569421b920d99c5b20cdafcdcf43a9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes: QTBUG-90530
Change-Id: Ib1f36e1cb89352dfac8a385a7b097cfc0226e813
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit fc91cd6b1306c6d452cbddab3c2289ccb92218d6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|\ \
| |/
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: Id97943831fbc85d703dc50369e0d975513208c43
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
Change-Id: I849d2daf4acc8ef6e7f8528af9c5a57f671f43e6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 07ddfbfa43d08c2b76aabafaab38830e04a42690)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|\ \
| |/
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: I665a0f6579e52cd9f27f731c6363bb03188a07bf
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The xdgshell protocol allows us to tell the output to fill. This makes
it possible to use fullscreen confidently on systems with multiple
screens knowing that our windows won't be overlapping one another by
calling setScreen accordingly before QWindow::showFullScreen.
Change-Id: I757854c3698639472f3a25ef298ddcca031e1ed5
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit f915e53eaa596654ee1b9726a4767a1cba11336f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|/
|
|
|
|
|
|
|
|
|
| |
This reverts commit 6bb05fed8fdb564f3ff0136bbdaf4efd6088797d.
Revert of commercial license headers is required for Qt 5.15.3
opensource release.
Task-number: QTBUG-91108
Change-Id: Ia867596ca140b1c37717baafe07cbcddd2a9b1fd
Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updated header.COMM to the files in tqtc-qtwayland. Examples,
tests and documentation files are not updated.
The commercial license header may contain some
additional lines so that its line count equals
with the earlier license header. Reason for this is
that some autotests use hard coded line numbers
and a change in the line count causes failures in tests.
Task-number: QTQAINFRA-4214
Change-Id: Ib716dd7c17587d0155b6903f5cf62be3f99384bf
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QWindow geometry accessors return geometry in device
independent pixels. Normally this coordinate system
is equivalent to the Wayland native coordinate system,
but this is not the case when QT_SCALE_FACTOR is set.
Replace QWindow geometry calls with the helpers from
QPlatformWindow which return geometry in the native
coordinate system:
QWindow::geometry() -> QPlatformWindow::windowGeometry()
QWindow::frameGeometry() -> QPlatformWindow::windowFrameGeometry()
Task-number: QTBUG-87762
Fixes: QTBUG-88064
(cherry-picked from commit 8cb1b07aea12d50b4fecc45c903705dfd368022a)
Change-Id: I6e2029bc6210f12441ae7c9d8b678271e9922dde
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-82789
Change-Id: I8cab4edfac68aec81bc86cfdf022c3600f7a32a8
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't want windows with FramelessWindowHint to have a
zxdg_toplevel_decoration_v1 object, because that allows the compositor to
force server-side window decorations.
We already have code in place that avoids creating the decoration object when
the window is created. However, if the frameless window hint is added after
the window has been shown, then the decoration object has already been created.
The protocol states that if a decoration object is destroyed, the window will
switch back to a mode without any server-side decorations on the next commit...
so this is what we do in this patch.
Unfortunately, there is no clean way to handle the case when the hint is
removed while the window is visible since the protocol explicitly forbids
creating toplevel decoration objects for surfaces with committed buffers.
Discussion is ongoing as to whether this should be fixed in the next version of
the protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/issues/9
If we want to work around it, it is perhaps possible to destroy and create a
new wl_surface, but ideally, it will be fixed in the next version of the
xdg-decoration protocol and we can just wait for that.
Task-number: QTBUG-80702
Change-Id: I7e76c05fc3629f1fbbba1d18482808fe588e3878
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This only fixes it for when Qt::FramelessWindowHint is set appropriately before
the window is shown.
[ChangeLog][QPA plugin] Windows with Qt::FramelessWindowHint no longer
create zxdg_toplevel_decoration_v1, as that allowed compositors to force
server-side decorations.
Fixes: QTBUG-80702
Change-Id: I47a582a59f6682a57128c0c9d4e4b9a6181925a4
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-73011
Change-Id: Ife0d9949b4d4dd7e6f16d3de88d0cb4bf4991e09
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
| |
[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 <paul.tvete@qt.io>
|
|\
| |
| |
| | |
Change-Id: I62ad84b48962fc119e4483a794406d8f4768ee32
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It's not needed and the CMake conversion scripts doesn't handle it properly.
Furthermore, we already use a mix of the $PWD style vs. the non $PWD-style, so
this makes things more consistent as well.
Task-number: QTBUG-78177
Change-Id: I23c17494506469881bc7539a941c82c65843a413
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|/
|
|
|
|
|
|
|
| |
When we switch to CMake, plugin names need to be unique, otherwise we will get
errors.
Task-number: QTBUG-78177
Change-Id: I8a82da107260caaf23015ad275ab31ce34319771
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since it is not supported by the protocol, neither we, nor the
application developer can do anything about it.
Change it from warning to debug so it only shows up when enabled.
Task-number: QTBUG-76061
Change-Id: I81420e0c72a9e9652f6592d65c70c7df1e5725b9
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/compositor/configure.json
sync.profile
tests/auto/auto.pro
Change-Id: Ia6d1512aa9ad49ac7f92ae88f23026dc0ee2ccc5
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit backports the Vulkan server buffer and texture sharing code
from Qt 5.14 to Qt 5.12 as an opt-in feature. To enable, configure with
"-feature-wayland-client-texture-sharing-experimental
-feature-wayland-compositor-texture-sharing-experimental"
Contains code from the following commits:
Add server buffer integration based on Vulkan
(commit df3a1761af2f20d59ae09a7adaa2f5b959047687)
Compressed texture support for vulkan server buffers
(commit f710489a341713c675cfd91d22ccd7bf8f29f4dd)
Implement server-side toOpenGlTexture for Vulkan
(commit 19361e7259f04b08925b1e8e99faf9460770ee7b)
New texture sharing protocol and infrastructure
(commit 80001cbf0451f4ba2a971fb20b80dc8e25ac604d)
Change-Id: I6c36ef7fddcd4db39e80d03a822d89f15eae3434
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Reduces unnecessary coupling between the compositor and client modules.
[ChangeLog][Compositor] The compositor module no longer depends on the
client module.
Change-Id: I108e56960835b6c31c450d5ae08a0a101af9422b
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Id3d7c7e5a62b8f7a7844dab872e16bf2094a5c91
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: Idc8adeb6ac0698ef8f6fb0585916a6e53a53fcb7
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently even when we are on on a compositor with SSDs we always create
a decoration instance only to discard it.
Not only is this somewhat wasteful, it creates sizing problems as the
frame geometry changes, leading to constantly expanding windows on kwin.
This patch assumes that if we have a decoration manager we should have
no decoration until it is configured to do so.
This is safe because we request a mode in the constructor, a compositor
must reply with a configure event and we shouldn't be showing any
buffers until the first configure event is received.
Behavior without a decoration manager is unchanged
Change-Id: I72b2cf4423fe6461ba405612262f76cefe4d6201
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/client/qwaylanddisplay_p.h
src/client/qwaylandwindow.cpp
Change-Id: I50eb5c83a8b81e4bdb032b68d41f429b17d0a74d
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
windowGeometry is an existing method in QPlatformWindow with an entirely
different meaning to the newly added
QWaylandWindow::windowGeometry.
This led to the existing call in resizeFromApplyConfigure calling the
wrong method.
Change-Id: Ib344cf09178e77e5b4d5427325d840346663ec9d
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| |\ \
| | |/
| | |
| | | |
Change-Id: I16bc2e214dda4c8d6c9fc3568af60068815fc558
|
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes: QTBUG-72696
Change-Id: I43f0a02a4447238aa93142981d22597c452790fd
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: I3dc204fcaa71c01a80b0c622443012eb07964431
|
| |\ \
| | |/
| | |
| | | |
Change-Id: Ifb1c6c64abbb5c453092eeb1aff91572b57de410
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The call to flushWindowSystemEvents() sometimes caused new popups to be shown
in the middle of hiding another. I.e. if multiple events show and hide
surfaces, they would be shown/hidden in opposite order of their corresponding
events. QMenus sometimes suffered from this (can be seen with the qopenglwidget
example from qtbase).
When the flush was added 5 years ago in 50f43a0c5, it was to "reduce the
chances of seeing a bad frame". I don't see any rendering artifacts, though,
and I can't find any bug report on it. So let's hope it's safe to remove the
hack.
[ChangeLog][QPA plugin] Fixed a crash that sometimes happened when switching
popups.
Also adds more info to the workaround warning message that appears when a popup
grab is attempted and there already is another grabbing popup that is not the
parent.
Fixes: QTBUG-73524
Change-Id: Ibfcbb48c4bbe295c2be1a30add2d7e05cad398c5
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Using NVIDIA's Vulkan/GL interop function: glGetVkProcAddrNV
[ChangeLog] Added Vulkan-based server buffer integration for
NVIDIA EGLStreams.
Change-Id: I500f80ff3b00a9585178976d8e400baa38e89ef6
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QWaylandWindow inheriting wl_surface is a leftover from the old days, and today
it is sometimes causing great problems. Especially on xdg_shell and other
shells where the wl_surface needs to recreated with a different role if the
QWindow::type changes.
This is currently worked around by calling reset() on the surface, which will
destroy the wl_surface, and emit some necessary events and signals.
However, much of the rest of the code still assumes that a QWaylandWindow maps
directly to a single wl_surface which won't change over the lifetime of the
QWaylandWindow.
Today, it would make sense to implement this with composition rather than
inheritance. This is a major undertaking and so this is the first small step;
hide the inheritance in QWaylandWindow's public API. This makes it much more
visible when and where the rest of the QPA plugin is using it, so we can
eventually move it into its own class later.
Task-number: QTBUG-74373
Change-Id: I257729e33c3a5368cef4bb1e16148ba392e65bd2
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QPA plugin] Fixed a bug where window decorations were to small for
for the content when QT_SCALE_FACTOR was set.
Fixes: QTBUG-72993
Change-Id: I1ed26e038c27f7c4454a6bcc04f0849e4af789e7
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The plugins subdir which includes the platform plugins was not built without
the feature wayland-server. Moves the checks inside the plugins folder to make
it build.
Also disables some tests that won't pass without the compositor API.
Fixes: QTBUG-73169
Change-Id: Ie68badd2ff62ee544c31edaff7c732082e0a4115
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
src/3rdparty/protocol/qt_attribution.json
src/client/qwaylandintegration.cpp
Change-Id: I475889f2817c7094b68a2948fdd34ddf8b0c486f
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds a new client buffer integration: wayland-eglstream-controller,
which contains the EGLStream logic from wayland-egl, and additionally
uses NVIDIA's wayland-eglstream-controller protocol to avoid the issue
where the stream is not ready at the time of first buffer attach.
This is not enabled by default. Can be used like this:
QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=wayland-eglstream-controller ./pure-qml
Fixes: QTBUG-71697
Change-Id: I73bb2a8fe9852afe1b5807cbb8c35dc4c7624dad
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Ignore more files resulting from the build process.
Glob all scanner generated files, and add exceptions for pregenerated files.
Change-Id: Ica60951356bdc145ebd66f5e6fc6bf4e23f2aa72
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Send window geometry every time the window is resized.
[ChangeLog][QPA plugin] Send window geometry every time the
window is resized.
Change-Id: I8f3824c31455345be2b582e7d3a55077b47851b6
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Send minimum and maximum size hints to compositors.
[ChangeLog][QPA plugin] Implement minimum and maximum size in
the xdg-shell and xdg-shell-v6 shell integrations.
Change-Id: I631c3348c8333d7a246b21228a92c436f5adb5dc
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QPA plugin] A window menu is now shown when the window decorations
are right-clicked (if supported by the compositor).
Change-Id: I13bf0c8cd91a6e5a3b44e47114dfdc2ff0e97f3a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
Conflicts:
README
src/hardwareintegration/client/xcomposite_share/xcomposite_share.pri
Change-Id: I7cbbf39916821f0f1749e3ccab3151f68f4aa1ac
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The xkbcommon configure logic was refactored in
qtbase/c3a963da1f9e7b1d37e63eedded61da4fbdaaf9a.
For more details see the relevant commit.
Change-Id: Ic1aa26846ab8266c589f6e92dc8b81aba36df58a
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][Compositor] Added support for linux-dmabuf-unstable-v1.
Implement client side DMABUF buffer sharing support by supporting the
linux-dmabuf-unstable-v1 (version 3) protocol. For enabling DMABUF,
set the following environment variables for the compositor:
QT_QPA_PLATFORM=eglfs
QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=linux-dmabuf-unstable-v1
The current implementation supports the following DRM buffer formats:
- RGB and RGBA
- YUYV
This implementation requires Mesa with the following patch applied.
Otherwise, textures are not updated. The patch is contained in Mesa 18.1.5.
See https://patchwork.freedesktop.org/patch/238080/
Fixes: QTBUG-66288
Fixes: QTBUG-67845
Change-Id: Id4d90337dbe0be956b0f964426ebed3f281c6c30
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
src/compositor/compositor_api/qwaylandquickitem.cpp
Change-Id: I5e01a0731e880e3eb8eab349043756a5993e3050
|