| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
We can and should use the new export macro for the client logging
categories, but we need to manually define the compositor logging
categories now since they are public and we cannot change their symbols.
Task-number: QTBUG-67692
Change-Id: If4eb9c390a4851945d308e2b83ef13b12816698a
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before Qt 6.5, QGuiApplication would create XDG_RUNTIME_DIR as a
side effect of looking up QStandardPaths::writableLocation during
platform theme initialization. Since QtWaylandCompositor cannot function
without a writable XDG_RUNTIME_DIR, do that lookup when the compositor
is constructed.
Fixes: QTBUG-122965
Pick-to: 6.7 6.6 6.5
Change-Id: Ia2365f08ba75be276ca7cc5520875c08cc82b465
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
If WAYLAND_DISPLAY environment variable is set, clients connect to it
by default. Use the same env also on compositor when creating the socket.
Pick-to: 6.7
Change-Id: I7e45437b9662e6591a675922de05fb7b9e324b8e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support for v4-wip was not added into any desktop linux compositors, nor
was it ever enabled into the default Qt client builds for clients or
compositor.
TextInputV3 has become the most widely deployed. Whilst changes are
needed, they do not need to be breaking changes. A second iteration of
V3 can add the features we need. This is now in motion upstream.
For cases where QtWaylandCompositor is used, the custom Qt text input
method is preferred to work with the Qt virtual keyboard.
Pick-to: 6.7
Change-Id: I01e2686c67846804c0069f1495952b530547f91c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since QTBUG-110268 was fixed, injected key events by the TestCase
QML type take a different code path and don't go through
sendFullKeyEvent() any more that would map the key to a proper scan
code, if not provided. The mapping has been added to the new path,
as well.
Fixes: QTBUG-115112
Pick-to: 6.6 6.5
Change-Id: I79c7e7813b380daf586916eeca68acc4ab392872
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Multiple \qmlproperty, \qmlmethod, and \qmlsignal topics used an
incorrect QML module identifier. With upcoming changes to QDoc
these will start to generate documentation warnings.
Fix the commands to either use the correct identifier, or remove
the identifier as QDoc is capable of resolving the parent QML
type without it.
In passing, fix a documentation linking issue.
Pick-to: 6.6 6.5
Change-Id: I5a562acc5f135d36c036ea1c1cc56218c23833b8
Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was added in 00b9c558886945bd9b37671732d14e3982fe3da5 and
by using private APIs it is indeed possible to delegate
input events to specific seats. But having this as part of the
public documentation implies it is supported and users will
expect examples etc. on how.
Pick-to: 6.2 6.5
Change-Id: Ib5f955eb586c7c920e46da2e58e5415cd8a1379b
Reviewed-by: Inho Lee <inho.lee@qt.io>
|
|
|
|
|
|
|
|
| |
Pick-to: 6.5
Fixes: QTBUG-111503
Done-With: Liang Qi <liang.qi@qt.io>
Change-Id: Ib6adb03575c06f667ec5d7a0139b4396888d4010
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.
Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.
Task-number: QTBUG-99313
Change-Id: Ia64c6615ee81f7ad5d0658449b0ee347c3db8c29
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
| |
None of these users require C++20 constexpr or C++23 noexcept, the
only remaining difference between std::exchange and qExchange.
Task-number: QTBUG-99313
Change-Id: Ic5a0bd36d715af2cbc5f9936fdff665ee6eeea4e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
License files are organized under LICENSES directory.
Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I106d3a5d1a7b96250380b6f51a48f3b19d10e4d9
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Task-number: QTBUG-91875
Change-Id: I1d1a16309ceacda0f95123895574664c2465008f
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
|
|
|
|
|
|
|
|
|
| |
Document what the corresponding C++ class for any given QML item is,
like it's done in Qt Declarative.
Pick-to: 5.15
Change-Id: I015565f88cb457f1e73dd7c2c54edff3505db395
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Add a virtual method QWaylandCompositorPrivate::seatFor and move the
body of QWaylandCompositor::seatFor there. It allows a custom seat
selection for a given event by re-implementing seatFor in the private
class.
Change-Id: I23259e8b6532e3e4d624d8aaf8c71faa5018399e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow compositors to support more than one type of hardware client
buffer integration.
[ChangeLog][QtWaylandCompositor] QtWaylandCompositor now supports
multiple client buffer integrations. QT_WAYLAND_CLIENT_BUFFER_INTEGRATION
will now accept a semicolon-separated list.
Fixes: QTBUG-68846
Change-Id: Iff1fa0a45b01f6a45dd744c37a89bac7d5e70658
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We would always reported all formats we could convert from
as supported on the wl_shm protocol. This would sometimes
cause clients to pick formats that required internal conversion
when creating OpenGL textures from the images. To avoid
this, we default to only supporting the RGB32 and
ARGB32_Premultiplied formats (which are required and advertised
automatically) and if the user wants to add additional formats,
we now have a additionalShmFormats property for this.
[ChangeLog][QtWaylandCompositor] The compositor will now by
default only advertise support for the required wl_shm formats.
Additional formats can be added to the list by setting the
additionalShmFormats property on the compositor.
Fixes: QTBUG-77531
Change-Id: Ibd5d5be2a37968353c00308abbfff7ca6f8d310d
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
Add compositor support for wl_surface.damage_buffer requests.
This also required updating wl_compositor to version 4.
Fixes: QTBUG-74927
Change-Id: I887ed04e60fe14ecce7df6a517950b0091e2ad54
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
Now that the minimum libwayland version is 1.15, there is no point
in checking whether the version is greater than 1.10.
Task-number: QTBUG-73636
Change-Id: I75a97bec7e464aa6b04e21d1c23566d17ac7684a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-84469
Change-Id: I4bc7b2eb2913fc828f09f96e21480b76cabf8656
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/client/xdgoutput/tst_xdgoutput.cpp
Regenerated CMake projects.
Removed duplicate wayland source in
tests/auto/client/xdgoutput/xdgoutput.pro. It's still
referenced via the included shared.pri file. Regenerated
the CMake project to adapt to that. Otherwise the CMake
project fails to configure due to duplicate rules with
a error like the one below
CMake Error at src/compositor/Qt6WaylandCompositorMacros.cmake:13 (add_custom_command):
Attempt to add a custom rule to output
tests/auto/client/xdgoutput/wayland-xdg-output-unstable-v1-server-protocol.h.rule
Also use a workaround fix for configuring CMake standalone tests
due to regression introduced by
dd7e40b1086020f6a054957f4972720cd684 in qtbase.
Change-Id: Ib364b851a1fa828c153efbf8653c9e4ef5e618cd
|
| |\
| | |
| | |
| | | |
Change-Id: I82c07ab72138774a0809bf60f0f3251d32923847
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
integrations fail"
This reverts commit 137966a6293b50f6b248d130a2e36e67df49335e.
Reason for revert: QTBUG-82948
Conflicts:
src/compositor/compositor_api/qwaylandcompositor.cpp
src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp
Change-Id: I77e3265c336fbcdf47eb1aa5dc07f31ec41006b5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The int-overload will in some cases truncate the descriptor.
So it's being replaced. On Linux it won't truncate, so the slot can stay
as int, but we still update which signal to connect to.
Task-number: QTBUG-70441
Change-Id: I516a453c381e8d29464febabfd69c788e58db5fe
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some of the changes that were needed
- adjusted wayland macros due to changed target names for plugins
- a few direct moc file includes, to get rid of compilation errors
- Threads::Threads linking for a few tests
- a few special cases for QT_FOR_PRIVATE handling because pro2cmake
doesn't handle those correctly at the moment (they map to
PRIVATE_MODULE_INTERFACE rather than PRIVATE_LIBRARIES)
- just regenerating all projects
Change-Id: I418ce91b1c69c7388d41eb22b94a93a9e80fa732
Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This just requires adding 8 to the key code when the platform plugin
is qnx. Inherited from evdev which inherited it from XKB. It's
easier to conform to the requirement than remove it.
Change-Id: Icd32ebf27256f29405821c7c8b7b8d93ff7f8fe0
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I21c6a0a4bc8df8dcaf9e33647482ba43c7b7d6c4
|
| |
| |
| |
| |
| |
| |
| |
| | |
It's not safe to use qDeleteAll on lists that change when elements are
deleted.
Change-Id: I7ec5b41da9eea839d1bda88bde621cc73a27927f
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\|
| |
| |
| | |
Change-Id: If5fcfe5252c1ac1db63ec77136b186a104280b57
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add missing function and function/qml method parameter documentation,
linking issues, and other minor tweaks.
QDoc fails to parse a Q_PROPERTY if the property type includes the
keyword 'enum' - fix that in the header file for
QWaylandXdgToplevel::DecorationMode.
These changes bring the currect warning count to zero.
Fixes: QTBUG-79817
Change-Id: I302b110eb91858f06e9cd410872a12365d421a8e
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I29524a74e495dd46c0dc5d0a0d10e41e55526f14
|
| |
| |
| |
| |
| |
| |
| |
| | |
Makes it consistent with how client buffer integrations work. Also doesn't
leave partially initialized integration around for the compositor to use.
Change-Id: I6ff898639b958f62330879a2eff1acbc7e5cdb1f
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\|
| |
| |
| | |
Change-Id: If09bb13aa7a0aadd5cfb8265166d3b9d1b22e2f1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| | |
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>
|
|/
|
|
|
| |
Change-Id: I652e58ae537103b6f97bc74ba2aca6a75b3a7e6b
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
| |
QPointer is larger than void*.
Change-Id: I144104a71eef1d023d20d3a024960c429bad6827
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch contains two changes where there is a non-neglible chance
that through some indirect call the container we iterate over could be
modified.
In the listener case, it's not impossible that a listener de-registers
when it's notified. So take a copy.
In the polish_objects case, the 'initialized' flag is set before the
loop starts, and the only other reference to polish_objects, in
addPolishObject(), does not append to polish_objects in that case, but
sends the polish event directly. So use a consume loop, to release the
memory and the QPointers once they're dealt with.
Change-Id: I63d32e8a298ed5e1a7d5446434c421df80c0c795
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/client/qwaylanddisplay_p.h
src/client/qwaylandwindow.cpp
Change-Id: I50eb5c83a8b81e4bdb032b68d41f429b17d0a74d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QtWayland can benefit from sharing code with X11.
This will fix issues that have been reported and fixed on XCB
a long time ago.
Task-number: QTBUG-65503
Fixes: QTBUG-71301
Fixes: QTBUG-66497
Change-Id: I09cbf8e1c9cf29e8d7f46b97bc2f11d6e91b61a5
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Use smart pointers from xkbcommon_support-private.
- Avoid unnecessary strdup()/free() calls.
- Don't recreate context. And move it into qwaylandcompositor so
it can be shared between seats. It contains things like a logging
level and include paths.
Change-Id: Ibea29f2874cc147a8e08f15192831fa42ca58f48
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the platform integration provides the wl_display, it should be the platform
integration's responsibility to destroy it as well.
Task-number: QTBUG-74879
Change-Id: I18999a5bd8cdc2900cac86f156f2adaaebf86158
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Compositor API] The compositor API now works without OpenGL support.
This makes the compositor API work with shared memory clients only. If OpenGL
clients connect they will currently punch holes in the compositor window, but
fixing that is out of scope for this patch.
Fixes: QTBUG-74896
Change-Id: I6c1ba82f28ba9edecf380e471124e15d16f9518e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
| |
Change-Id: I57e89057a238064e1270d036b656d261b85e50e7
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If unbind is not called, some drivers may try to do cleanup that depends on a
valid wl_display in eglTerminate. Arguably, this could/should also have been
fixed in the affected drivers. There is a display_destroy signal that the
driver should listen to, to avoid using dangling wl_display and wl_global
pointers.
However, by using eglUnbindWaylandDisplayWL we can force the cleanup to happen
before wl_display_destroy. Which is what this patch does.
Change-Id: Id9062de896b723838bcecac3902031e6b172a6de
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|