| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows compositors to hint a non-integer scale to use on a window
which we can hook to Qt's existing fractional scaling support.
The viewport is used to communicate the relationship between buffer size
and logical size to the compositor. It is a non-integer alternative to
wl_buffer_scale
Change-Id: I1a850f1bcd40e8d04e241e18a538b11f18bc671c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a new API for writing custom shell extensions. This API is supported,
but semi-public. Binary compatibility is not guaranteed.
Also adds qt-shell, a new shell that maps directly to the QWindow API, and
provides functionality that Qt provides on other window systems, such as
absolute window positions and window activation. This shell is not intended
for use on the desktop.
This is a squashed commit of a development branch consisting of approximately
60 changes. Contributors:
Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Paul Olav Tvete <paul.tvete@qt.io>
Task-number: QTBUG-94330
Task-number: QTBUG-91542
Change-Id: I419b6bd8179fe03e4da47d328c7ff4b4795b8a91
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Create a new module WaylandGlobalPrivate that is merely a collection of
build features that are shared by client, compositor and plugins of
qtwayland.
Move the features wayland-client and wayland-server to
WaylandGlobalPrivate to be able to access both features in
src/CMakeLists.txt. This removes the need for explicitly including the
configure.cmake files of client and compositor, which fixes QTBUG-88261.
Move the features that are defined in both, client and compositor, to
WaylandGlobalPrivate.
The module is defined in src/CMakeLists.txt to ensure that the
targets created by the qt_find_package calls in src/configure.cmake are
accessible in subdirectories below src/.
We need the (nearly) empty src/global directory to satisfy syncqt.
We cannot pass NO_SYNC_QT to qt_internal_add_module, because that
prevents the creation of qtwaylandglobal-config_p.h.
Fixes: QTBUG-88261
Fixes: QTBUG-91705
Change-Id: I776632a86ffe96886dc12f1f675f9ab56a2faf2a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-92098
Change-Id: I3a46fcbe463f19521e6a3b0fc2d6c30e3ac93112
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
Support wl-shell integration
as a module for external build
Change-Id: I6cd5e5c35ff1162943ffdcbe7ff834f30783e5a8
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
| |
Support wayland-egl compositor hwintegration
as a module for external build
Change-Id: I794ad4eb38fc2dda31ace1b0eeb2e001020d0956
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Support wayland-egl client hwintegration
as a module for external build.
Change-Id: I3e82838d0cc89d4bb1435b835dc1e9b592319ddf
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Jaeyoon Jung <jaeyoon.jung@lge.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both of these are deprecated given this is now formalised as the final
xdg-wm-base. This final release has been out for several years and all
main compositors (kwin, sway, mutter) have dropped or are dropping
legacy support.
tst_nooutput is moved to stable XdgShell.
Change-Id: I46a011502dfec6d4a215c3b22d03e8ceebed46c3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We introduce an alternative input-method protocol, which
is a one-to-one mapping to Qt's input method API. Input
methods such as the virtual keyboard's hunspell
integration is quite sensitive to the inner workings of
the input method handling, both in terms of when state
is updated and which updates are delivered when.
With a one-to-one mapping we are able to match these
expectations and keep a well-synchronized state.
Task-number: QTBUG-85135
Task-number: QTBUG-85134
Change-Id: Id69c22a7b0885ea59f39fdcc8d663749af56c7ce
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
XdgShellv5 and XdgShellv6 have been deprecated in
the compositor since 5.15, and wl-scaler since 5.13.
These are now removed.
Since the qwindow-compositor has not been updated
for a long time, it depends on the outdated protocols.
This change removes it, since it no longer represents
best practices. This means we will be missing a proper
C++-based compositor for now, so we will have to
create a new one later.
Change-Id: Icc6ef97c17e553f266c4145abeef26ddd631d6bf
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QPA plugin] Added support for drawing tablets through the
tablet-unstable-v2 protocol.
Adds support for the basic one tablet, one tool, no pads scenario.
Besides the auto tests, I tested with a Huion Kamvas Pro 16 with a simple
pressure sensitive pen with two buttons. As far as I can tell, it works the
same way as on xcb on Sway and Gnome Shell.
Also tested on a Wacom PTZ-630 with a mouse, art pen, airbrush and a stylus.
Mapped the distance event to QTabletEvent::Z and slider to
QTabletEvent::tangentialPressure.
For now we send QTabletEvents even when there's a mouse or finger on the
tablet. Those should ideally be sent as QMouseEvents/QTouchEvents, but that's
out of scope for this patch, but at least we will send synthesized mouse events
if the tablet events are not accepted.
Change-Id: I93291ffa5f00fa2bb8533eddd8d873b84a3386b8
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
sync.profile
Change-Id: I6f6d44ec285d37e64e430303ef9a87ac7aaf3eb9
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We already have a client-side implementation in the QPA plugin,
and now we add the server-side implementation.
In order to have a nice declarative API, we let users create a
XdgOutputV1 instance and then associate it with the zxdg_output_v1
object when it is requested by the client.
If the user forgets to create XdgOutputV1 beforehand we post an error to
the client.
To anticipate protocol version 3, we send zxdg_output_v1.done when we
send wl_output.done.
The multi-output example is extended using this protocol.
[ChangeLog][Compositor] Added support for xdg-output unstable v1
Wayland extension.
Change-Id: I1ec5913d8330cc01d7d634d05a289f4dc8b4fd22
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Allows disabling of screen blanking on a per-surface basis.
[ChangeLog][Compositor] Added support for idle-inhibit
unstable v1 Wayland extension.
Change-Id: I3cd392f9e1bb3604691f2a496579aad3b87383b6
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Because they were checked in at 618d5093d5de082f9aaf32cca778c5eae6a8548d.
Fixes: QTBUG-76439
Change-Id: I1809b1424262dfe39e6cc177eec487d9ca364337
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
[ChangeLog][QPA plugin] Added support for middle mouse pasting through the
primary-selection-unstable-v1 protocol.
Fixes: QTBUG-66008
Change-Id: I7c8fb9aa2c856f5b6794aeab1ee75d80cad05dcd
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds a higher level protocol on top of the server buffer extension,
providing an easy way for Qt Quick applications to use the shared
textures.
[ChangeLog] Added protocol and Qt Quick image provider for sharing
textures in graphics memory between compositor and multiple clients.
Task-number: QTBUG-73822
Change-Id: Idc41b3479d6ca37be35d9ccd7b89e9994ff17f8f
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][Compositor] Add deprecated support for the deprecated wl_scaler.
Some clients are stuck on the unofficial Weston protocol wl_scaler instead of
the standardized and stable wp_viewporter. This implements optional support for
wl_scaler.
This patch has been written to be easily removable in Qt 6, and touches a
minimal amount of other code.
The implementation can be tested using the new manual test compositor:
tests/manual/wlscaler.
Weston 1.11.1 has a demo client named weston-resizor, which can be used to
test. Note that although newer versions of Weston also have weston-resizor,
those versions use wp_viewporter instead of wl_scaler, so you really need
1.11.1 or earlier to test.
Fixes: QTBUG-69635
Change-Id: Id572e28044cd764eaf63b1259a92bc589711c39d
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][Compositor] Added support for the viewporter Wayland extension.
Change-Id: I1d33652fab6ff18da4ae1ae3497f0ca43517420a
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.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>
|
|
|
|
|
|
|
|
| |
And add an example with server-side window decorations.
Task-number: QTBUG-69934
Change-Id: Ic3984b50cf7574cae5135dea51eb4b1c80bb45a7
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Compositor API] Added APIs for xdg-shell stable.
Code copied from the V6 implementation with suffixes and prefixes removed.
Otherwise a few minor edits, such as renaming xdg_shell to xdg_wm_base, and
handling the anchor and gravity edges no longer being bitfields.
Examples that used v6 have been updated to use stable instead, or, in some
cases, to support both.
Task-number: QTBUG-66784
Change-Id: Ia619b478a938fdcd9b47af8a8df2d7fcc4406204
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QPA plugin] Added client-side support for the
xdg-decoration-unstable-v1 Wayland extension. Qt clients will now let the
compositor draw the window decorations if configured through this extension.
Note: The env var QT_WAYLAND_DISABLE_WINDOWDECORATION is still supported, but
works on a higher level, and for all shell integrations, while xdg-decoration
only works with xdg-shell stable.
Task-number: QTBUG-69746
Change-Id: I9dd0331bbd8d624c6be54ed23ee3b96446d5820d
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
XdgOutput is an extension of wl_output with the benefit of having the
logical size of a screen as an explicit parameter, instead of clients
inferring it from modeSize / scale. This is useful as it allows
compositors to implement fractional scaling whilst clients can still
fill the screen.
In the future XdgOutputV2 will support a more useful name and ID that
we can use.
[ChangeLog][QPA plugin] Added support for xdg-output-unstable-v1
Change-Id: I2e1e64ad6cb497a1cbb7b7b170f28ac92231c2c4
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
| |
Change-Id: Id95b8c407e0dee878a4b0a7109375e56cbdeee6a
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-68773
Change-Id: I886726fa9fb14f87041cf1a3e8aaead70d4d9ae8
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
| |
Change-Id: I6cdc2eb0c5310462c4b1486cd03af9bd433bcf63
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Get rid of almost all DEFINES += ... in the pro files,
instead use the proper QT_CONFIG() macro to determine
whether a feature is available.
Change-Id: I867769be2085c6ba93b6815e223e2b89edcb245d
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\
| |
| |
| | |
Change-Id: I1efd16d6c5f939d61001376c3b010eae1927595b
|
| |
| |
| |
| |
| |
| |
| | |
the CI obtains them from the qt5 super repo nowadays.
Change-Id: I93b3231e94c15b93544b53bcfe72a18e4309903c
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
The files were moved to qtbase in change 03a8036674d07daadd2e
Change-Id: I740e6c9e4218e20f25879b881db9993a794089c8
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
This introduces the new compositor API, removing the
old API (which was never officially supported).
Change-Id: I1dc01f0fb4edc749e34ed8356e56ad87d7d64913
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
enable building QtWaylandCompositor by default
Change-Id: I7cf34052b304ca9fef55b7e30ef6a6367b5d75f1
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
|
| |/
| |
| |
| |
| |
| |
| | |
defines which gives type sub-classes which adds desired functionality
for extensions in QML
Change-Id: I3973e07e0daf0c27813b3405b9188281092f4375
|
|/
|
|
|
|
|
| |
Allow the control of the subsurface sync mode
Change-Id: I19f35261313282873f57228487a63a8f6a780b0c
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
|
|
|
|
| |
And make wayland common files into a library, exporting all classes. Now
there is no need to do bulild hacks to make your own version of the
wayland plugin.
Change-Id: Ib4872863dfb5ab3f2bc0f4a94ae16fc1e7b63b88
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
|
|
|
|
|
|
|
|
| |
If we leave the git symbolic ref empty, it will track dependencies from
the same branch.
Change-Id: I3d5ed186190a0b7ab9d94846a00040a70f5554b4
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
|
|
|
|
|
|
|
|
| |
It's no longer a dependency.
Change-Id: I1002093df9f42b0b7dfacd0daa9f33889a997d43
Reviewed-by: Simo Fält <simo.falt@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
|
|
|
|
| |
Change-Id: Ib81ae383c5ef4baf76f2cfd4bd9efeb749480f4b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
|
|
|
|
|
|
|
| |
Will be unpined along with an update that matches the changes in
https://codereview.qt-project.org/#change,66591.
Change-Id: I84fc8b6d28c05d75fe199044a9a5c7cf0070518f
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|
|
|
|
|
| |
Change-Id: Ic35bccd081e025888f325873d01529d50c1a4776
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- load(qt_module) => load(qt_build_config)
- remove:
- CONFIG+=module (obsolete)
- code relating to module version headers (automated now)
- %mastercontent assignment (automated now)
- QT_BUILD_*_LIB defines (automated now)
- pointless QPRO_PWD assignments
- qmake -project boilerplate
- dead code
Change-Id: Ia515c3cc40170e3b99b0bfd04c10637d49f9b99f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
|
|
|
|
|
| |
Change-Id: I70f4f4e81a042a977748dbb42b069b3706829828
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
|