| 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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds documentation for the cmake functions used to generate
binding code for protocol extensions. Since the Wayland Client
library did not have any documentation landing page, it also
adds that. This currently only links to the cmake function, but
it can be extended to include other APIs later if we add them.
Pick-to: 6.7
Fixes: QTBUG-114147
Change-Id: I07d8dbe3bc32e5845482fe3e69ec6ba94897331b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt's current text-input-v3 is converted from text-input-v4, but it's
current state is poor and does not support the same feature like v2.
KWin is the only major party that implements text-input-v2 and many
feature e.g. Plasma-mobile would require v2 feature to provide the
complete support. Until v3 is as good as v2, prefer v2 over v3 should
provide a smoother experience on KWin (for both 5/6) out of box and
won't affect other compositor.
Pick-to: 6.7
Change-Id: Iebfe20cfd61f4a96018c4d41a9c4c706b18c7199
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
This amends b1cae06cb65658dcddf01a596ea95cfd7c0ebdc2.
They are mapped vice versa. The wait cursor displays only an hourglass,
while the busy cursor usually displays an arrow and an hourglass.
Pick-to: 6.7 6.6
Change-Id: I449086f71b00993c061e8a56983c77925246dc37
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
| |
It is used repeatedly. Normally it can be optimized by a compiler
but it might be helpful to see what it is by the name, inputInterface.
Pick-to: 6.7 6.6 6.5
Change-Id: I7f4988674d7249c84b1321e69146dfd92189f142
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
| |
When focusObject is changed,
hide the input panel if input method is not accepted.
Fixes: QTBUG-116600
Pick-to: 6.7 6.6 6.5
Change-Id: I50b5d051eea6f85365d8bc9aeadb46d8d866e362
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
While no released compositor implemented qt-toplevel-drag it was a
valuable to step to prove the protocol and the Qt implementation
together with development pre-release versions of KWin. Now that the
protocol is standardized we can switch to that version which is
functionally identical.
Pick-to: 6.6 6.7
Change-Id: I3beefe542cbabeddba4468b5d1fa24fcb05a2e5a
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
| |
Change-Id: Idcaf1aaef59529f0cb49c552418a434f7d449d7b
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
| |
Pick-to: 6.7
Change-Id: I717f16d6ff055b2c0221bfd9cae1bdc9fa7f6513
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the right QXkbCommon::modifiers overload that can resolve the
modifier.
f614fdfa5dc522f805c7c061535df6a0dc7409b9 did this for wayland-server,
do the same for the client side
Pick-to: 6.7 6.6 6.5
Change-Id: Iff0c105cb31201241d4972a7772cf997cede3fc3
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
| |
It was part of xdg-shell-v6 which has since been removed.
Pick-to: 6.6 6.7
Change-Id: Iecf5166b4c2710b209f7dfa0951958dcf82618f7
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When reconnecting the cleanup of existing buffers is delayed in order
to preserve contents and copy them to buffers belonging to the new
connection. Due to the order of events it could happen that
a new buffer was deleted along with the old ones but still being
referenced by a window.
During reconnect all QScreens are removed and new ones added for
the wl_outputs on the new connection during the initial roundtrips.
When the first new QScreen is added all QWindows move form the placeholder
screen to it. This can cause for example QWidgets to repaint. At this point
the windows are not reinited yet, and the buffer is queued inside the window.
Only afterwards the reconnected signal was emitted which would cause
deletion of all existing buffers including the newly queued ones.
To fix this the signal is moved after the first roundtrip where all globals
are announced and new buffers can be created but no new screens have been
announced yet. The signal is renamed to be more fit for its new location.
Pick-to: 6.7
Pick-to: 6.6
Change-Id: I06be14d235ac342a4b420176aadad3ccf18178fe
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Size hints are in wayland's "window geometry". This includes the space
for any client side decoration that QtWayland has to add.
We need to update the size hints whenever decoration is created or
destroyed and these margins change.
Fixes: QTBUG-121399
Pick-to: 6.7
Change-Id: Ie8c1898859774e1c8dff93695af15327379ad3b6
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
| |
Like the globals window manager integration needs the display to be
alive.
Fixes: QTBUG-121364
Change-Id: I3bf10737f9c1aa6d0b3c34d2268532ea6fc4e957
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
| |
Change-Id: I416fee67bb35a88f55ac6d24d203e607f1ea1f32
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
zwp_text_input_v3's enter/leave events are doing enable/disable
the surfaces.
enableSurface/disableSurface are called by setFocusObject and
it follows enter/leave.
These redundant routines are removed in TextInputV3
Fixes: QTBUG-120533
Pick-to: 6.7
Change-Id: I080c67629d7cf9a9029414f5a0ea6735cfe4642a
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Always at least call the generated "interface"_destroy method which does
destroy the proxy. For not already wrapped classes a small template
is introduced to pass a function that is called in the destructor.
Fixes: QTBUG-111576
Change-Id: I373463710764958ddea42ef0f7dc010c427b2ce8
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
| |
Fixes: QTBUG-120950
Change-Id: I22a78691bd09093432e5d11a72e3abbeadf36cf2
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
createDecoration is called when on the main thread from when window
flags change, implicitly from initWindow, and also every
handleWindowStatesChanged which will be called when we get the first
configure event in an xdg shell.
There is no need to create the decoration in
QWaylandGLContext::makeCurrent. Any current call to makeCurrent before
the platform window is shown will not create a decoration as there's a check for a shell surface. Any call afterwards will have already been handled by initWindow. Similarly the SHM backend store does not need to handle decorations itself.
Fixes: QTBUG-105703
Pick-to: 6.7
Pick-to: 6.6
Change-Id: I644cece28277131cf7a65eaa234ff08c8431d544
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
| |
They should be converted to native ones and shouldn't contain
server-side decorations
Pick-to: 6.7 6.6 6.5
Change-Id: Ia701edc22b68bec2fa46e95d7a812621142dcde0
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
| |
Ensures the decoration can redraw to adjust for the new colors/font.
Pick-to: 6.7 6.6 6.5
Change-Id: Ib46acde1d14baafda49f379f8279c396bc976bdc
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It may include a suffix containing the application name
and is also what's set on the XDG Toplevel, i.e. what
the rest of the environment (task switcher, etc) sees.
This stores the title in QWaylandWindow and adds a
getter to retrieve it.
Pick-to: 6.7
Change-Id: I84f41c68b16b680cdbb5cf656c7078d1e41767d4
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
| |
It isn't really used anywhere yet, since on Unix
QFontconfigDatabase doesn't use the screen's information.
Pick-to: 6.7 6.6 6.5
Change-Id: Icab81b2bf8df1a23223a74f2d4aee94601e0bea3
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Doing a memcpy is quite expensive, particularly when only a small
region of the buffer (such as a blinking cursor) actually changed.
Instead, keep track of the damaged region and paint only what
actually changed into the buffer to be used.
Change-Id: Ibd81bbfe20d0750ddb751f41722a316387225ba6
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|