| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: If7d0954561cecddefada49d7f00359a711bb9e29
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
needlessly""
This reverts commit 171e1d0d2761ba64cb15edbd32d02fb50ef57d28.
Reason for revert: Cause for test failure has likely been addressed by b9a5ffab93627cfedcead1574c8f0fd010b329b5
Fixes: QTBUG-124284
Fixes: QTBUG-124285
Change-Id: Iedeb1d2800951e549fe4a4846aaaa477cfa497ae
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
| |
This causes a build failure under clang 17.
Change-Id: I9e256109ec6e7de146334012bce90912d0d4bb62
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: David Redondo <qt@david-redondo.de>
|
|
|
|
|
|
|
|
|
| |
The current state was a bit messy with the platform services being
the potentially no initialised qt window manager extension wayland
object.
Change-Id: Id1f911b75d34fcf70594ca7257b79bf431f0643f
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QUIP-18 [1], all module and
plugin files should be
LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
or
LicenseRef-Qt-Commercial OR GPL-3.0-only
Also, LGPL and non LGPL should not be mixed in a given directory
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I7ea516b58210764939923fa09ea2ff05c48f5fd2
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QUIP-18 [1], all tools files should be
LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I9a08423046dd325dd267d2390faf8d2eb0c76315
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
On xcb, Alt modifier makes wheel operations horizontal.
Fixes: QTBUG-124807
Pick-to: 6.7 6.5
Change-Id: I98cfe14b4df91169a5ff4e777ebe954087747e17
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Generate source code without information about original location of the
source file. Useful for reproducible builds.
Task-number: QTBUG-105926
Task-number: QTBUG-105913
Change-Id: I5f9b3f90e6e85c772a92425e7b796a9d63c3c713
Reviewed-by: Ari Parkkila <ari.parkkila@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For simplicitly, a Wayland compositor typically activates a window
when it is mapped. However, it does not necessarily have to and
might not want to in order to prevent stealing focus.
Inttroduce a requestActivateOnShow() on the shell which is called
when showing a window and, in case of XDG Shell, will explicitly
request activation (unless Qt::WA_ShowWithoutActivating is set)
and make use of the existing XDG Activation infrastructure.
Change-Id: I69ab5f2cee4540d5baefa5a266f22dbb165e4192
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
| |
For security reason, Wayland doesn't provide global position for
top level windows in most cases.
Task-number: QTBUG-113404
Pick-to: 6.7 6.5 6.2 5.15
Change-Id: I2cd11b641fba6582cf96cfbea16f5e598a473db5
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This amends 73d35d3117722cef8e94f0d2036c56ad0a5ddae9.
We can't depend on QGuiApplication::topLevelAt(). For security
reason, Wayland doesn't provide global position for top level
windows in most cases.
We just synthesize enter/leave event for popup between it and the
parent.
Task-number: QTBUG-100148
Task-number: QTBUG-113404
Pick-to: 6.7 6.5 6.2 5.15
Change-Id: I9de1d413cdbc43486c1a110df4517750983e4fda
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
| |
This amends 0417a5f34a327be44a50b5164266b9f607776461 .
Change-Id: I3e24a138246c2333196296048709e329873d6134
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The phrasing of the error message caused some confusion when people
thought it indicated that QtGui itself was missing from the build.
This tries to make it very explicit that it is the wayland-feature
which is missing and not QtGui itself.
Pick-to: 6.7
Task-number: QTBUG-123489
Change-Id: I8dcdf8bdbb05a379dea3021cec8bf8e7036d55dc
Reviewed-by: David Redondo <qt@david-redondo.de>
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
|
|
|
|
|
|
|
| |
Emit them after creating or destroying the shell surface.
Change-Id: Ied54933ca0f0aec25cc288f7cfe191c85b37f543
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using public-code by default is problematic if multiple libraries
contain wayland interface definitions generated with public-code
which exports the symbols of the interface definitions from the
library. If not all libraries are build against the same protocol
version and the symbol is resolved to a version generated from an older
version of the protocol, then libwayland will detect a protocol error
if a request or event from the newer version is used.
This introduces two new options PRIVATE_CODE and PUBLIC_CODE to
qt6_generate_wayland_protocol_client_sources which correspond to the
wayland-scanner options. For backwards compatibility PUBLIC_CODE
is the default.
Change-Id: Ia30ec4b83419962b768207d7353c495e11b0268e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the new modal property from ShellSurface, and treat modal dialogs
as StaysOnTop.
[ChangeLog][QtWaylandCompositor] ShellSurfaceItem will keep modal
dialogs on top of other surfaces when using XdgShell.
Fixes: QTBUG-118813
Change-Id: Iaa0ca411dc4fec740e0fbe1db523b16b028c4c29
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Implement xdg_dialog_v1 on the compositor side.
This adds a new properties in the QML API:
XdgToplevel::modal
ShellSurface::modal
Task-number: QTBUG-90005
Change-Id: Ie80358bc59c3dabc6e841b65d193c8ca56bacde3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 3652666c559382f6d575fa4102e132b71a58785f.
This optimization causes flakiness in the xdgdecorationv1 test, possibly
because it no longer handles the case where the supportsWindowDecoration()
function is called before the buffer integration is initialized.
So it unfortunately has to be reverted until a better approach can be
figured out.
Fixes: QTBUG-124259
Change-Id: I05f13a51b22b6779bffba531f08ebfd17a9afb38
Reviewed-by: David Redondo <qt@david-redondo.de>
|
|
|
|
|
|
|
|
| |
Output variable gl_FragColor wasn't declared due to a copy-paste error.
Pick-to: 6.7 6.6 6.5
Change-Id: I0732953143d9a2315d430e57d8e1a92cca87f542
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
| |
Change-Id: I5543ace14dbc854e2122c9b31189701cf025df3b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
This shouldn't matter in practice, the main motivation behind this
change is to make window closing code consistent both for xdg-toplevels
and xdg-popups.
Change-Id: I74ef11ddbaf942cb545bb04baf7b35979adde81c
Reviewed-by: David Redondo <qt@david-redondo.de>
|
|
|
|
|
|
|
|
|
|
|
| |
Amends c0d108b5042752359c279b41cc6f055f4f18ec60.
Unicode conversions will be done without using QXkbCommon.
Pick-to: 6.7
Change-Id: I9d9f94b799179f82912bd1be54431e460c37b363
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
QWindow::close() will close a window regardless whether it's blocked by
a modal dialog. On the other hand,
QWindowSystemInterface::handleCloseEvent() will do nothing if a close
event is sent to an xdg-toplevel window with a modal dialog.
Pick-to: 6.7
Change-Id: I5f18d38d4fdbb5748687ee3537035172df916de9
Reviewed-by: Kai Uwe Broulik <kde@privat.broulik.de>
Reviewed-by: David Redondo <qt@david-redondo.de>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't initialize the client buffer integration just to check whether it can
do a decoration. If we had a GL window, it would have initialized GL already.
Also, we can do software-rendered decorations nowadays, only disable them
if the integration explicitly says it can't.
Change-Id: I396d32796a10ccffd6ef3bb0c5eaa3a1078b8d79
Reviewed-by: Ilya Fedin <fedin-ilja2010@ya.ru>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Use it wherever window coordinates should be translated to surface
coordinates
This also fixes the usage of QWindow::mapFromGlobal which is in wrong
coordinate space while handling CSD dragging from pending touch points
Change-Id: I66b114610f0e44fea10535594adb5d1284196662
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
| |
Allows to mark windows as modal dialogs.
Change-Id: Ie4999552933e02fc473e621e7cc5e3f2928c0adb
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently some parts of the decoration use surface size
(window icon, window controls) while other parts use window content
geometry. As backing store paints it from the start of the surface,
use surface size everywhere.
This is visible when setting custom margins.
Change-Id: I22a84fd35bd6e088c30ea265d8cb4af86f14e1a5
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
| |
Use NO_GENERATE_CPP_EXPORTS explicitly for modules that don't need
the autogenerated exports header file.
Task-number: QTBUG-90492
Change-Id: I3494ac88e136126265e14ef1a380c5ef26def3ef
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
To avoid RTTI.
When I tried to implement the reconnect function in Plasma5,
I found that the application would have a dynamic_cast crash
problem. Referring to other usage logic and suggestions in Qt,
it is recommended to avoid using dynamic_cast.
Change-Id: I4fd41846c3215f60aafc7e38d1542d52ec6759b8
Reviewed-by: David Redondo <qt@david-redondo.de>
|
|
|
|
|
|
|
|
|
| |
startSystem{Move,Resize}
Fixes: QTBUG-97037
Pick-to: 6.7
Change-Id: I812c25b98909f9ff05ffca122e7201665023172e
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
The names of the files that wayland-scanner generates are based on the
protocol file name not the protocol name that is defined in the xml.
When those two mismatch qtwaylandscanner would generate code that fails
to build.
Pick-to: 6.7
Change-Id: Ieecd7a122177530ab1ff890367ce53809a8bb7b9
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
| |
This way no other events will be dispatched which could cause calls into
user code when delivering events synchronously.
Change-Id: I5c195877388d178832067b5aba6b5f5abd26e099
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a client-side decoration plugin implementing GNOME's Adwaita style.
This is trying to follow GTK4 Adwaita style, using xdg-desktop-portal to
get user's configuration in order to get whether a light or dark colors
should be used and to get the titlebar button layout. This plugin is now
used on GNOME by default, while defaulting to the original behavior for
non-GNOME DEs. It depends on QtSvg used to draw titlebar buttons so in
case QtSvg is not found, this plugin will not be build.
[ChangeLog][QtWaylandClient][Added GNOME-like client-side decoration
plugin]
Fixes: QTBUG-120070
Change-Id: I0f1777c4e0aa3467dafbbae8004b594cc82f9aa0
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Each zwp_text_input_v3 object should have their own
serial number and it will not be cleared on the same object.
Pick-to: 6.7
Change-Id: I779c2ae07f1dab1ae4a7d87e4e183ce33ec804fe
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Weng Xuetian <wengxt@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Either viewport or wl_buffer.set_scale can be used to notify the
compositor that the client has scaled it's contents, with viewport being
more flexible and a requirement for fractional scaling.
Unfortunately Gnome before 36 announces viewport support, but it does
not work correctly. This patch workarounds that by only using the
viewporter when we're using fractional scaling otherwise continue using
the legacy path.
Fixes: QTBUG-122412
Pick-to: 6.7 6.6
Change-Id: I9a01d9456ce91735051f8f53fb4b72add6961fcb
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: David Redondo <qt@david-redondo.de>
|
|
|
|
|
|
|
|
|
|
| |
"application/vnd.portal.filetransfer", which is only valid for one
time use.
Fixes: QTBUG-107858
Pick-to: 6.7 6.6 6.5 6.2 5.15
Change-Id: I094de22ea0bb9b3577572e6c57ebe42cdc8c7b41
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
| |
This amends 35880c7e1021a379e3cdd4005edd53472b63856c .
Fixes: QTBUG-123007
Pick-to: 6.7 6.6 6.5 6.2 5.15
Change-Id: I3b4e5d4a8304fd57558eec3897562895c294aadd
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
| |
Sync from QPlatformInputContextFactory::requested in
8596998cb025a8338c9403f5ef9db5a23f5cc682 of qtbase to
QPlatformInputContextFactory.
Fixes: QTBUG-120202
Change-Id: Ib15d8a59c4cb3baaa19355ed5d7c30c87a7a1c16
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
QFile::resize done upon creation of the buffer already ensures
the buffer is filled with zeroes, so there is no need to paint it
transparent if the buffer had just been created.
Change-Id: I73ab297f148987acf52a0e08c7dd1ca57f7255be
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
| |
This reverts commit 853bbee25514132dfe00ec9d55fbdcb39365926e.
Reason for revert: QtWaylandScanner now sends null for a null QString when the argument is declared as allow-null
Change-Id: I5b7e23285b300b76dabfd2999ab90e90e7328232
Reviewed-by: David Redondo <qt@david-redondo.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`toUtf8().constData()` on a null `QString` results in an empty
string sent over the wire, which is distinct from `null` when
the request has "allow-null" specified.
Notably `wl_data_offer.accept` uses a null mime_type for
"not accepted".
[ChangeLog][Important Behavior Changes][qtwaylandscanner] String
arguments in a request will now send null rather than empty string
for a null QString if the argument is declared with "allow-null".
Change-Id: I4b78246e4da7b60680d7797fd6309755f44d2bb6
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
get_pointer is the method belonging to QtWayland::wl_seat creating new
wl_pointer instead of using the already existing one. Since they were
tracked nowhere they where also leaked.
Pick-to: 6.7
Change-Id: I0b9d1914ea6a9e7b379fad905a319bde5fd7f136
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
setWindowGeometry is called to tell shell surfaces when the window tries
to request a new size.
On XdgShell this should not be called before the window is exposed and
we are attaching buffers, this check belongs in XdgShell itself as other
shells may be using this for other purposes.
Pick-to: 6.7
Change-Id: Iae09e71e1b5071fc8c1f3790ec1a260c3d6462ce
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
qtwaylandscanner sends an empty string for a null QString
but `wl_data_offer.accept` uses null for "not accepted".
Pick-to: 6.7 6.6 6.5
Change-Id: I793d4315c9775a4bdc63085231318db8df829c8a
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the moment, the QWaylandWindow::wlSurfaceDestroyed signal is emitted
before destroying the wl_surface object. It's the opposite of its name.
Furthermore, the client code in Plasma assumes that the
wlSurfaceDestroyed signal is emitted after the wl_surface is gone, but
it isn't, which is the source of bugs.
Technically, it's an API breaking change. But this ordering issue is
quite annoying to deal in the client code and the QWaylandWindow native
interface api lives in the Private namespace.
[ChangeLog][QtWaylandClient][Important Behavior Changes] The
QWaylandWindow::surfaceDestroyed() signal is emitted after actually
destroying the wl_surface object.
Change-Id: I33e27c06795653d3e20e04a36cb39be8c46797ee
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
XDG activation operates on wl_surfaces, which can be used on all shell
types.
For the case of self activation there is was cast to the xdg
shellintegration on the focused window in order to populate the appId.
Only this part needs to be guarded, not the whole activation.
Pick-to: 6.6
Pick-to: 6.7
Change-Id: If44cc800b7cd98141ba05ba5d1cf0812ef777e7a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Marco Martin <mart@kde.org>
Reviewed-by: David Redondo <qt@david-redondo.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An unbound maximum size is sent across the protocol as 0.
We need to make this change before the check that the minimum size is
less than the maximum size.
This fixes having only a minimum size set. This bug is currently masked
by the platform forcefully applying the minimum size.
Pick-to: 6.6
Pick-to: 6.7
Change-Id: Ifca4fa01e4c2ac1c34aeb72db1584e4a868d50bc
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By adding it to the default build flags via .cmake.conf.
tst_primaryselectionv1 and tst_datadevicev1: the connection type needs
to be explicitly set to DirectConnection, otherwise the test fails. The
sender and receiver are the same object, so typically would be in the
same thread. The docs say:
"If the receiver lives in the thread that emits the signal,
Qt::DirectConnection is used."
I suspect because the code is running inside CoreCompositor::exec() the
signaling thread is different from the thread the objects live in, so
leaving the type as AutoConnection when sender/receiver are the same
object doesn't lead to the type becoming DirectConnection.
Task-number: QTBUG-116296
Change-Id: Iad49889134a78fa723973ba6efbc237038f35b82
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Drop "resize(QRect)" since it is ambiguous with the resize coming from
QPlatformBackingStore.
This allows to ensure a back buffer from multiple places, such as the
upcoming "scroll" support.
Change-Id: I43a5ece2d0e25e64b41335ba59b2b8c4ffcfff74
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|