| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Change-Id: Ib8e7b0865520926e01b4473735924909ce9cdaf3
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's possible for clients to perform a drag and drop operation within
their own client without any mimeData. A user can directly access the
original drag.
On wayland without any mimedata it's impossible for a client to accept a
drag as the mechansim involved is to either select a given mimedata
entry or an empty string. Within Qt we always accept the first format if
we accept a drag.
When dragging within our own window we also start a wayland drag so will
receive a cancel event from the compositor if the compositor doesn't
believe the client has accepted the drag.
This patch provides a dummy mimedata entry so that something can be
accepted.
Fixes: QTBUG-112161
Pick-to: 6.5 6.2 5.15
Change-Id: I6309d82e20545e10ebdb9dafde7e13a5e3be5ff2
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit 32fedb6fa6579711b6cb192a2e3cfb7ad1264546)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ic749f38daa4e3cf545bd0ddfe9ef9468df4bb646
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I28f726dfef26f910bb72d7b80c2ca7ac62275222
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I5701f5feec5db350876d86121a59494cb940a3b3
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The recently refactored QWaylandTextureOrphanage
used sender() in a DirectionConnection,
which doesn't work if sender and receiver live in
different threads - which happens if multiple windows
(and therefor multiple QSGRenderThread) exist
This patch fixed that by replacing sender()
with a lambda capture
Also: fix a weirdly phrased comment
Fixes: QTBUG-117932
Change-Id: I870e92b448dfd1f9864ff94743cf7accc50fc6ff
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit eb1a83ea9bb145d72a23f925002c9e9a745c110e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I6a8d6ddb43446d40469b5223d3a2cf90545a0120
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Icfd51c8b6697e082241716e055bbfcd363858163
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ic0bb595d58b7e34abef6e233a5b67e540abacfa6
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ibb53069d6a9632ed56323b5026663ee5a16ff939
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Pick-to: 6.6.0 6.5
Task-number: QTBUG-117210
Change-Id: I808ae74c3b3c1ab8e4912344d804f1d3741b8dc6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 27026f5e992255165e208dbd1b49c91f904836ad)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I13eb92017215f74193de2ae26ae60014e7c8bde1
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I8107f4b99d4ccb259533537e5a70808d9e9befa1
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QWaylandWindow::setCanResize(false) will block applying configure
events. QWaylandWindow::setCanResize(true) will unblock configure events
and potentially apply a scheduled configure event if there's one.
QWaylandWindow::setCanResize(true) has to be called **after** committing
the surface to ensure that the xdg window geometry matches the buffer.
We don't want the xdg window geometry change when painting.
Unfortunately, setCanResize(true) can be called before the surface is
committed when using a RasterSurface, for example
- QWaylandShmBackingStore::beginPaint(): calls setCanResize(false)
- QWaylandShmBackingStore::endPaint(): calls setCanResize(true)
- QWaylandWindow::setCanResize(true): applies pending configure event
- QWaylandShmBackingStore::flush(): commits the surface, but the xdg
window geometry is wrong now
As is, beginPaint() and endPaint() are not entirely correct functions
where configure events can be blocked. We need functions that wrap both
painting and flushing, which are not feasible with the current backing
store design.
On the other hand, it's worth noting that blocking configure events in
the backing store is not necessary because painting happens on the main
thread unlike OpenGL or Vulkan code paths.
Given the lack of synchronization points and the fact that rendering
happens on the main thread, this change removes blocking configure
events in QWaylandShmBackingStore. It fixes dolphin and various other
applications that use QtWidgets jumping while being interactively
resized.
Change-Id: I156e4fd5e04a6bba7e8d48171510d5ab0ec89713
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 8828452bcf2ecf4e02a64380a1697d148c4366b0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The buffer transform, input and opaque regions are double buffered
state. They will be applied on the next surface commit.
But the issue with them is that the relevant code makes surface commits
too. It's undesired as it can lead to qtwayland committing partial
state, for example it can break xdg surface window geometry.
This change removes hidden surface commits. The relevant properties will
be applied on the next frame.
Change-Id: I1c40c9a5430fb6b91d7643b20d628f8a9a9d501a
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit e8cff6fb39c0fd01548bce18542820a6612dbe49)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QWaylandWindow lacks an explicit step to finish initializing the shell
surface by committing the surface. So far it used to work because of
hidden surface commits in
QWaylandWindow::handleContentOrientationChange(),
QWaylandWindow::setMask() and so on.
This change adds an explicit step to commit the initial surface state to
make the shell surface initialization robust.
Change-Id: Ibc38a4e0dbea689a727451c25a61af0270c7e548
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 225432c2294bdfbf24856b2f155cd274b24543b2)
|
|
|
|
|
|
|
|
|
|
|
| |
Amends e8cff6fb39c0fd01548bce18542820a6612dbe49.
The new size hints will be committed when the surface is committed.
Change-Id: I94e944fee7dac63d5e9ac86fb348b5d24d54abfc
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit d8d3d6097afeac62f1b0285e3d5365c7cb580547)
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
| |
Change-Id: Ib6cbadba02f9559d1b8daa92fab1fca962fe441e
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Iff90d217401d72561d5cb8b5b25a74196b051057
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ic276641da9de3afad65a268607bbd7f6fd179f24
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In WlCallback::callback_done(), m_fn() can cause the callback object to
be deleted, so it should not be referenced after that. Since
m_autoDelete is never set to true, the rest of callback_done()
is dead code and can be removed.
Fixes: QTBUG-117067
Pick-to: 6.5
Change-Id: I0b1a1fcb8204cba789272f3861be4c2e2d0789b4
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
(cherry picked from commit 6cc9cdbfddae3b801876273763804bd02b785a49)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: If8de27668dc11976d2e5df0cfcd78258b7e6d9c0
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous implementation was a bit error prone
(there was a reproducable "dead pointer" issue)
and had duplicated code (dma, egl and eglstream share the same code).
The new implementation fixes both issues (and more):
- no more 'this' capture on a lambda where the 'this' isn't an object
and hence can go out of scope without the lambda knowing.
- no more duplicated code as we now have a singleton as our orphanage:
QWaylandTextureOrphanage
3 (dma, egl, eglstream) HW-integrations use this singleton
- the class itself as well as it's container are thread-safe
by the usage of QMutex/QMutexLocker.
This also includes the deletion code within the orphanage.
As the orphanes are 100% owned by the orphanage,
they are protected from double deletion.
- The cleanup due to QOpenGLContext::aboutToBeDestroyed is
now ctx specific, no more lamdba-per-texture.
Change-Id: I36e82fae796864319bed7ebdb5154e93dbe96394
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 2cea2d8520af4f3647f2e7aa7444b68c9c1e51cf)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I17d581dff7b3c88fadc484d5a68d974058fb8622
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I5dae200e29744460bd16b51ec8f74cc42796e50d
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
| |
Change-Id: I9ba11561e59b62e5a20b842e380a484262d9ef7f
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This amends 40a27c26cee7ad4e5e32eb01568777cd4e9da25c.
examples/widgets/draganddrop/draggabletext in qtbase now is fine.
Fixes: QTBUG-116344
Change-Id: Ie930586fa7c6468c0e859786d968ad2343057e4d
Reviewed-by: David Redondo <qt@david-redondo.de>
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit 38f5679d57c7b05753ac1ab27d94b60dc10a340a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 8235fa65fe033a94e7a44322d3502f25940092ec.
It makes tests/manual/examples/widgets/draganddrop/puzzle not work,
which does drag and drop in same app.
Fixes: QTBUG-115757
Task-number: QTBUG-97037
Change-Id: I738769fde96f7da91f5bc4dc7a70ed49596dcd61
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit 60647fa069ef4143642ae4c1b529ad2a7a7f2fd9)
|
|
|
|
|
| |
Change-Id: I6a0ddfe6f1af457b4c4c1002c26fbfc8e847e354
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Whilst long-term we want public API, we don't have anything available.
This patch provides a non-official override using properties without us
committing to any API promises moving forward.
Change-Id: I46afbe9be7005d35305155643a1d158cf5bd509a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 6d24c829f173c95e9f5860a2233bc916c356be01)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Only initialized extensions should be in the extension_vector.
Change-Id: I174c4eedae472aa5412c3f2b8a102adbc812fe40
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 3da1356f306860084cf0f6c673c02150fadcfb7a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Added example category to custom-extension and minimal-cpp.
Task-number: QTBUG-116340
Change-Id: I1a767614831f88378e8b311f0112ed408b2bba76
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
(cherry picked from commit 09baa29a54f82979c15e4bce22c171057a2165cc)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I70f61fbc96ef2f76f121b833b239d8a7775cc33f
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ifdf7fa9991604d5e6a776531be5bc86a6a2553fa
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I19ecd575968892761113eabebfd2bb6f044020d5
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I870f0af7442c5b65a60191ffa7c23cda7ab323d9
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The relevant code can be reformatted as follows
if (isOpaque()) {
if (mMask.isEmpty())
setOpaqueArea(QRect(QPoint(0, 0), geometry().size()));
} else {
setOpaqueArea(mMask);
}
which doesn't fully make sense.
Change-Id: If78270273bff4eec9ad58666b6f31c5f10139caf
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit d09c1e7b059d905dccfdb840ada570e074b28f89)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Just call set_cursor(null) directly.
Change-Id: Id10b7d41775a41c805962d77fba2d7d2b19956d0
Reviewed-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit ee8906f8960facec9ea029212553c5a06f84a2b8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I0951e2fc47fd6553dd36e22026c2d4046fc48b6b
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Don't assume it's 1.0 initially.
Change-Id: I443cb40a0f3421e6d7bdeba550cc8fc94c646319
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 1452c8d6ee8fe59763d9d48549fe0fbd2466015c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
CursorSurface::update only calls set_cursor if the hotspot or serial has
changed. Reset its state when using a shape cursor to ensure switching
back to a cursor surface (e.g. when switching from a shape to a bitmap
cursor) works as expected.
Change-Id: Ia04dff468c251030a75e9f1eac642ed764879125
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 30216b545f3ef0a9bf465e57ba04b054d2a96728)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I3eaf1dee2ecde803a7f661ba59c2758a0acf6a37
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we have special handling for wl-shell to automatically
respond to frame callbacks in the mock compositor.
With the framecallback timer this results in flaky tests as the window
becomes unexposed.
Change-Id: I2add44d59ba26368c031a381849891f49764bfb5
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit e457ab967fc6b0b782d9c29ca21d77728a890ba8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I82955bb9e13b98d0638e413fab99e8a07ecddf1e
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
325a2338976c3cca6278436af03e7bd4e4378d7c changed the order in which the
shell surface and the QWaylandWindow::wlSurfaceDestroyed signal are
ordered.
Unfortunately, it broke popups with some compositors. When the
wlSurfaceDestroyed signal is emitted, QWaylandInputDevice::Keyboard is
going to reset its focused surface and call
QWaylandDisplay::handleKeyboardFocusChanged().
QWaylandDisplay::handleKeyboardFocusChanged() is going to call
QWaylandDisplay::handleWindowDeactivated(), it will make an async
roundtrip to determine the current focused window. This is to batch
leave and enter events.
Since the wlSurfaceDestroyed signal is emitted before destroying the
shell surface and the wl_surface, the compositor has no reason to change
keyboard focus, so qtwayland will think that the app lost focus for good
and close all popups.
This change restores the old behavior by making
QWaylandInputDevice::Keyboard connect to QWaylandSurface::destroyed
signal, which is emitted after the window's wl_surface is gone. It also
makes QWaylandInputDevice::Keyboard consistent with
QWaylandInputDevice::Pointer.
Fixes: QTBUG-116051
Change-Id: If866f94a0cec1659c27ffeb2d263a2480ca8fdf1
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 1da23c86d54cefa6f3bd4285658ed6dc7b3f5175)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I0b499600d7f891616f2cf1d2852f02b33261fa37
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
It's where, among other things, the override mouse cursor is reset.
Otherwise the cursor stays a dragging hand indefinitely.
Change-Id: I9e7a44e09d5806cd64e66ba7a7c96f2d24ec97fc
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit bdec910d775720dc2cd73833bfe9eefc73518dc8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: Ibdf1af59cb3d3f35d727bc449628f4f6bc2340e0
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I55e1ae1a173b0010eb9b352813d5a78ad83d5597
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I3066b34257e79b04cbf7a3b87da77de13d3676c3
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|