| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
+ cc0c12bf96533cb92878e102a20d1a238e614f01 Bump version
+ f924acaf3d4c927d7d3283e752b82bf120b2c13e Stop using modern C++
+ 1e1f692dbdb0b1b8a1bbed99b5ff550dc978cdcd Client: Always close popups when hiding a window
Change-Id: I5d5f1c3a941ac51318cd8d24ee93da51bdf71516
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\
| |
| |
| | |
Change-Id: Ie099792a076a92136b753d377e2bdd9755551520
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
+ 5400af8850a7a73a19443839fbd0c8f3d45b091b Make QT_WAYLAND_COMPOSITOR_QUICK a feature
+ 1cce394099bd83261a0fe3bb73acd5c4bd8a749a Client: Don't freeze in QDrag::exec if there was no drag focus
+ 2e9c90aaefdfe5f1e9b90159c5e6981230627055 Client: Refactor touch handling and fix various bugs
+ 33d2062f8ac9419ec1c6504be47fe48119e605bb Fix deadlock in QWaylandWindow::waitForFrameSync
+ 481cea71043dabf6d5ff33101a66693af86438e1 Compositor: Fix various input-related rounding errors
+ 4121e26d2bc235703603e812eef533b8b2e16d18 Client: Fix touch rounding errors
+ 1753b5b2f0d13549e181955faa506eac0e717201 sync.profile: remove two headers
+ 0c838ea604e2ac9871f78c8f11b30ce23a7c7750 Fix detection of wayland-kms support
+ 90f9c3c6fdb323a7fd509cb7fc018472cc5d1c13 Don't try to inject non-existent generated headers for xdg-shell v5
+ 45859d7521074a4921b8459eb0a6e2cc71b9dd5a Client: Don't crash with long window titles using UTF-16 characters
+ 03e8c91fc28b77c4f027b6c6d582b85878efae41 Client: Fix 100ms freeze when applications do not swap after deliverUpdateRequest
+ 096bd6f6509dbf241eb33685f672112c38991c53 Compositor: Fix crash when trying to maximize an XdgToplevel with no output
+ c42dd53cdb2edfef0ee8bd0e7d8775dd0ab52850 Bump version
Change-Id: I5b7abbeeb9c00c8f3e67ec3d179293b0dc51526d
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It's not just popups that may have popups open on them. Always close open
popups when hiding a window to prevent dangling pointers.
[ChangeLog][QPA plugin] Fixed a crash when re-showing a popup after hiding its
parent.
Fixes: QTBUG-80562
Change-Id: I7cdac5c7a30e0add5ebf00259401e4d74626ce96
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 7c0833f4bc22d2d947c793f0711e3f1e1a09012c)
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes compilation errors with c++11.
Fixes: QTBUG-81024
Change-Id: I13ae380a122a2d52b7b362a7a39e661a22c74afc
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
(cherry picked from commit f7e035446355d9cb90141e508b5d33e019e14add)
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
| |
The Wayland protocol gives no guarantees about which events are part of a
frame, so handle the case where we receive wl_touch.down and wl_touch.motion
within the same frame.
Fixes: QTBUG-79744
Change-Id: I5dd9302576d81da38e003c8e7e74da6a98def603
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 57c28f461a066c03ef8ae3f823c040fa91876fb8)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QPA plugin] Fixed a crash when showing a window with a hidden
parent.
Now we just avoid creating the subsurface, so nothing is shown. Seems to be
the same behavior as on xcb.
Fixes: QTBUG-79674
Change-Id: Ia46fcd9a0da5aad4704816a41515cb1e128ac65f
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 962b9be7992cef672cb6307af5653c97382c334f)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sometimes the test would wait indefinitely in the compositor constructor, while
also waiting in the compositor thread for m_ready to become true.
m_ready is set to true in applicationInitialized(), which is supposed to be
called from the client thread after QGuiApplication has been created (and also
after the MockCompositor constructor has returned).
I.e. the problem is that the wake in MockCompositor::run may sometimes
happen before the MockCompositor::MockCompositor starts waiting.
Move the wake inside the pre-initialized compositor loop. Essentially waking
every 20 ms until the application is initialized.
Fixes: QTBUG-66570
Change-Id: Ia5eba5d08ce4d1d3eeca99eae6cfa7d9d4fd5a0b
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 62e959eaa707a163daca69a42c733bbd272d41d6)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This cherry-pick also fixes a shadowed, unused variable introduced in
the original commit.
Fixes: QTBUG-78969
Change-Id: I4ecde3725b5307251070e331c97d96df328a3772
(cherry picked from commit 11f2e7df5762a23e66d1755b34f5f3d07208ae32)
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
deliverUpdateRequest
[ChangeLog][QPA plugin] Fixed a 100 ms freeze that would occur if applications
did not draw after receiving a deliverUpdateRequest().
QtQuick does this at the start of animations. This should get rid of those
backingstore warnings (and also remove a 100ms freeze before animations start
in those instances).
Fixes: QTBUG-76813
Change-Id: Id366bf4a14f402fa44530ae46e7b66d9988c14f6
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: John Brooks <john.brooks@qt.io>
(cherry picked from commit 9f5b96225885f927727a57b6123d8550d6c373bb)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we set the max length in QString character length, which means
UTF-16 characters (of potentially three bytes) counts as one character. The max
limit of libwayland, however, is in bytes (and the string itself is converted
to UTF-8).
Fix it by dividing the character limit by three because in the worst case each
UTF-16 character will use three bytes when UTF-8 encoded.
Fixes: QTBUG-78478
Change-Id: Idf4721894e0fe6f3cd92bdc6ada7b0ea4199ea63
(cherry picked from commit 1ed0782e93dafb0a3d5ef3a02c9c3999825817ee)
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
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
(cherry picked from commit 7e658cf26dc6e85dbe4a4216f7294dbb3a928dcc)
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We get around the "private" symbol found in wayland-kms.h by
substituting it with "priv", but doing that breaks the "private:"
keyword in type_traits.h.
So this patch forcibly includes math.h prior to s/private/priv/.
main.cpp:3:17: error: ‘priv’ does not name a type
#define private priv
^
In file included from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/cmath:43:0,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/math.h:36,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-util.h:34,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-server-core.h:32,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-kms.h:38,
from main.cpp:4:
/opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/ext/type_traits.h:71:24: error: ‘__if_type’ has not been declared
typedef typename __if_type::__type __type;
^~~~~~~~~
main.cpp:3:17: error: ‘priv’ does not name a type
#define private priv
^
In file included from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/cmath:43:0,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/math.h:36,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-util.h:34,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-server-core.h:32,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-kms.h:38,
from main.cpp:4:
/opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/ext/type_traits.h:114:24: error: ‘__if_type’ has not been declared
typedef typename __if_type::__type __type;
^~~~~~~~~
Change-Id: I2b42f37d5565833adcc065725119ab4912da82b0
(cherry picked from commit 382e3292aa0eb6addac84ddefeedc98c7f3b41b2)
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
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: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Touch now accounts for fractional input in the same way as for pointer
input.
Task-number: QTBUG-77457
Change-Id: I18e633bf7c7033187a641f757b8b24f52479971a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit b1a534a536892035fdf1e826a066bda6ab34b93a)
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|\ |
|
| |\
|/ /
| |
| | |
Change-Id: Ic73262146f51a9e7f4ffab46511654ad70c4f514
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
+ e008c69e231169425e2ae602deabc0eb749376ab Fix compile error with -no-opengl
+ cde2fe3fba31b9b8d258f0663bc34009fd769efd Compositor: Map touch ids to contiguous ids
+ af9ec8a76d7e62444fadb518256fc58723fe5186 Client: Don't add all windows to activePopups
+ af00b80178138e55be7ea892a118e6357798e0f2 Don't crash if we start a drag without dragFocus
+ ec9057081f1094fbfeb11449bc533997731e4079 Client: Fix stuttering when the GUI thread is busy
+ a4e6f88f50d1a1dd56df77ce8b07b98aceb20ddc Client: Reset frame callback timer when hiding a window
+ acba020f1b6725e2d431636b1a2cfb075672ddcb Bump version
+ 5ca9f28f4b272d3265b97c16029071a0070195a6 Fix compilation with C++20
+ 25a46893782979c74f57ab725b1ce55fbfc4fa2f Fix the build when libs didn't get built
+ 3d5cec736ce17c6b40c52bb8966f8fc40b742664 Fix expose event compression
+ 43d8a3091894ceb4ab934167b2f3eda27564eb6d Backport texture sharing for NVIDIA
+ 86b0d64b6c44fd8c3c3dd133bf52239f5520e524 Client: Add safer fromObject function to scanner
+ 2838c7f33a0b2f40b026d00b3e00139f94c358e7 Fix incorrect conversion to straight alpha pixel formats
+ 3e96fa1df8d2bc0ec8ab66abae1f20439b786b40 Client: Fix large clipboard pasting
Change-Id: Ie61a19a3adb04e1280b2f70839778cf2c708a85b
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |\ |
|
| | |\
| |/ /
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/client/qwaylandwindow.cpp
Change-Id: I89fefe5bfc247eeaad3981850efa0faaab3cb145
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The wl_surface can be destroyed whilst a render is happening. Calling
wl_surface::frame after the window is reset can crash as wl_surface is
null.
Fixes: QTBUG-77747
Change-Id: I139a9b234cb6acba81d6c1d5fa58629904a25053
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QPointF::toPoint (which is what the QPoint versions of the events use
internally) uses qRound, which is not the right kind of rounding to
use with the QRegion we use for the input region.
This switches to use QPointF variants instead of QPoint wherever
possible, and then the correct conversion (with qFloor) is done once in
the new QPointF version of QWaylandSurface::inputRegionContains().
The compositor inputRegion test has now been updated to test the new
API.
[ChangeLog][Compositor] Fixed various rounding errors related to touch
and mouse input.
Fixes: QTBUG-77457
Change-Id: Ife2365abd56a239c34eee91310ab0e698a50d4ff
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 7f189ec10a9b3e9825dda30d3a8f86ee2e07b97f)
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Calling the QOpenGLContext::swapBuffers from
QGuiApplicationPrivate::processExposeEvent in some cases leads to
recursive calls of QWaylandWindow::waitForFrameSync. Since the
mWaitingForFrameCallback check in WaylandWindow::waitForFrameSync
is performed after the mutex is locked, the QMutexLocker tries to lock the
mFrameSyncMutex mutex in every recursive call, that leads to a deadlock.
This patch moves the performing of the mWaitingForFrameCallback check
before locking the mutex.
Change-Id: Ia2d834b7dd03fcd91bbe29a3a897b4db2d155527
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rename mTouchPoints to mPendingTouchPoints, to clarify that they're the
accumulated state so far, which will be applied with the wl_touch.frame
event. QWaylandInputDevice::Touch::mPrevTouchPoints is no longer needed
and has been removed.
Fixes the following issues with the old approach:
- touchPointsReleased() only checked mTouchPoints, which was cleared on
touch_frame and populated again on touch_motion and touch_down, which
meant that it could return true even though there were still touch
points left. Leading to the workaround for missing wl_touch.frame events
on Weston being triggered to often.
- Touch focus was cleared on any wl_touch.up event, not just the last
one.
- The order of the touch events was not stable and relied on the order
of the events (QTBUG-77014).
Fixes: QTBUG-77014
Change-Id: Ic3ecdc87e77b0e0276afefd127ad2b965142cbd4
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
af00b801 fixed a crash when starting a drag without a valid focus, but
there is still a problem, because QDrag::exec will never return because
it's waiting indefinitely in an event loop.
- QWaylandDataDevice::startDrag can now fail by returning false.
- When starting a drag fails, we cancel the drag through
QWaylandDrag::cancelDrag wrapped in invokeMethod.
- Also, don't unnecessarily create a data_source if we cannot start a
drag.
[ChangeLog][QPA plugin] Fixed a freeze that happened when starting a
drag-and-drop operation without a valid source surface.
Change-Id: Iea19b0c92c196a44d1274a966bee4ff519632d34
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The define was only set when building Qt, not when including public
headers in application code. Therefore, the sizes of objects did not
match between the client code that calls new and the constructor inside
Qt.
Unfortunately, adding the additional members breaks binary
compatibility. This has already happened between 5.11 and 5.12. It just
wasn't apparent from the headers. If we removed the members again now,
we would break binary compatibility again. Therefore, the best course of
action seems to be acknowledging the break and adding the members also
in the headers.
[ChangeLog][Compositor][Important Behavior Changes] Between
version 5.11 and 5.12 binary compatibility for the wayland compositor
module was broken by adding an additional member to various classes.
This was not apparent from user code as the member was behind an #ifdef
which would only be set while compiling Qt. As several versions of Qt
incompatible to 5.11 have already been released now, rolling back the
incompatible change would introduce further incompatibility. Therefore,
the change is made consistent by unconditionally adding the member to
the headers.
Fixes: QTBUG-75677
Change-Id: I3c1ee309ad8e0cd0b6389a76fd1d91e6e2be495c
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Qt applications should not call exit.
Task-number: QTBUG-75779
Change-Id: I91190b10f8c8e111996cd73283061e6ceaa6b1f6
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When Key_Return is sent from Qt VirtualKeyboard it will send it as \n
and not \r which means it will be interpreted as an unknown key. So since
we know it will be able to map it in this case, we explicitly account
for it so it can be mapped to the right key.
Change-Id: Id5d8d9653e78975203f80790b7a3d332f0e011fa
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This race happened because QWaylandIntegration::clientBufferIntegration (which
lazily initializes the integration) was called from numerous places including
code that may run on different threads without any kind of syncrhonization.
An example of this is Qt3D, which indirectly and simultaneously calls
createPlatformWindow (from the GUI thread) and createPlatformOpenGLContext
(from its render thread), both of which needs to use the client buffer
integration.
In this patch, we fix it by first checking if the integration is initialized.
In that case, it's safe to use it. Otherwise we lock a mutex, re-check if
initialization has happened on another thread in the meantime, and then finally
we initialize it.
This way we should avoid the expense of mutex locking after initialization is
complete, while still staying race free during initialization.
Fixes: QTBUG-76504
Change-Id: I327840ebf41e014882cb659bc3e4fafb7bdb7a98
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recent changes in QtBase means QtWayland will have to follow the convention of
the rest of the QPA plugins and have QPlatformSurfaceEvent::SurfaceCreated and
SurfaceAboutToBeDestroyed follow the QPlatformWindow (QWaylandWindow) lifetime
and not the lifetime of wl_surface.
Some users were depending on those events to get notified about wl_surface
changes and used QPlatformNativeInterface in order to get the window's
underlying wl_surfaces in responses to the events.
The good news is that QPlatformNativeInterface is private (QPA) API, so we can
provide an alternative by exposing new private API, which is what this patch
does.
The QWaylandWindow::wlSurfaceDestroyed signal already exists in the dev branch
(introduced in eb66211ea9), so this is a backport of that signal as well as an
addition of a new QWaylandWindow::wlSurfaceCreated signal.
Task-number: QTBUG-76324
Change-Id: Ibc5748474cd52f5b9461fd1ad6cef973491174b1
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the non-blocking file opening, when no data was available in the
pipe, read could return 0 even though we were not at the end of the
file. This resulted in truncated data when pasting the clipboard.
This patch uses select to block until a file is available, removing the
polling sleep. This means the file can be safely opened in blocking mode
whilst keeping the timeout feature allowing read to work as intended.
Change-Id: I936aa85e9f25197e7abe6fb3fa729b618c00924d
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, QWaylandSharedMemoryFormatHelper::fromWaylandShmFormat(WL_SHM_FORMAT_ARGB8888) would
return Format_ARGB32, i.e. the non-premultiplied version, while, according to the wayland-devel
mailing list (https://lists.freedesktop.org/archives/wayland-devel/2017-August/034791.html), all
Wayland RGB-based pixel formats with alpha should have premultiplied alpha.
This patch makes sure we return the premultiplied variants for ARGB8888, as well as for ABGR8888.
Using a switch instead of the array also allows us more freedom to choose the preferred format in
other cases where multiple QImage formats map to the same wl_shm format.
While being wrapped and exported as QtWaylandClient::QWaylandShm::fromFormat (private API), this
conversion function doesn't seem to be used anywhere, so this patch shouldn't cause any changes in
behavior for projects that only use public API.
Change-Id: Ie09f9a339b4540dd0383a72b3c951eb8c93e3ab4
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Makes the scanner produce generated static functions such as
QtWaylandClient::wl_surface *wl_surface::fromObject(struct ::wl_surface *object);
Which casts from the wayland-scanner generated types, such as struct ::wl_surface *,
to types types generated by qtwaylandscanner, but performs a check to see if
the listener is set to the wrapper class first (at least for interfaces with events).
This lets us easily fix crashes in a couple of places where we receive events
with wayland objects that we didn't create.
Also adds nullptr checks whenever we use the fromWlSurface() and fromWlOutput()
functions to handle failed conversions.
Task-number: QTBUG-73801
Fixes: QTBUG-74085
Change-Id: I9f33c31c7d1a939ccb3ebbbcb0eb67af10037237
Reviewed-by: Jaroslaw Kubik <jarek@froglogic.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 3eea45e31ef796ab6f1363f8fd2882c151becc20)
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
For shells that do not send configure events when exposed:
If setGeometry() was called before the window was initialized, Qt would
not mark the window as mapped, and the window would never become
visible.
Change-Id: Ic933cbbff20702424129c11264215181330cc7d1
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
| |
Change-Id: I641a1a80edd0861049d079422eef28b095fc26b3
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
|
|
|
|
|
|
|
|
|
| |
Implicit capture of 'this' in [=] is deprecated in C++20.
Fix by using explicit captures.
Change-Id: Ie3a94ec60d7c56b2856d201fa3d68d0670bdd7b9
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
| |
Change-Id: If69992b414824405267ea0d8c20b9f1bd996944b
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we hide a window whilst a compositor has a pending frame to show,
it's possible the compositor will not render the frame and not return
the callback.
If this happens on the next window expose we can be left with
mFrameCallbackTimedOut still true causing isExposed() to remain false
and us to not send the next buffer when we later show the window again.
Change-Id: I507410415d1a930fd5fa736412055e68fdf6c1d3
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we did invokeMethod for handling the frame callbacks, we had to wait for
the GUI thread to finish whatever it's doing before we would stop blocking.
Fix it by clearing the frame callback timer and stop blocking immediately,
while delaying the rest of the work until it can be run on the other thread.
Fixes: QTBUG-76397
Change-Id: I343e4feac4838926b4fa2ccac2948988bc6c3bb7
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\ |
|
| |\
|/ /
| |
| | |
Change-Id: I7ad83f19cf9f47b40088a56d4182514bf5b83508
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Neither Qt::ToolTip nor Qt::Popup are single bits in Qt::WindowFlags, and do in
fact include Qt::Window. This meant that when we or'ed them and did a bitwise
and with QWindow::type(), we would match more types than just Qt::Popup and
Qt::ToolTip. We would for instance get any Qt::Window as well, which meant the
main window would be added to activePopups, leading to strange things
happening, such as crashes and the main window closing unexpectedly.
[ChangeLog][QPA plugin] Fixed a crash when closing multiple popups at once.
Fixes: QTBUG-76124
Change-Id: I1a6a59e161a436604a7ac8ab824396481dc99a20
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit af9ec8a76d7e62444fadb518256fc58723fe5186)
|
| |
| |
| |
| |
| | |
Change-Id: I3402a5297448aa4f4e0703ffbae897f00f0f6577
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| | |
Change-Id: I76df7709ee1e21440c647a4419900800edfacac2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Sometimes origin will be nullptr, triggering a crash.
[ChangeLog][QPA plugin] Fixed a crash that sometimes happened when
starting a drag-and-drop operation.
Fixes: QTBUG-76368
Change-Id: I8f4e6b05f073644834c3c72a8307dac5b897f626
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Neither Qt::ToolTip nor Qt::Popup are single bits in Qt::WindowFlags, and do in
fact include Qt::Window. This meant that when we or'ed them and did a bitwise
and with QWindow::type(), we would match more types than just Qt::Popup and
Qt::ToolTip. We would for instance get any Qt::Window as well, which meant the
main window would be added to activePopups, leading to strange things
happening, such as crashes and the main window closing unexpectedly.
[ChangeLog][QPA plugin] Fixed a crash when closing multiple popups at once.
Fixes: QTBUG-76124
Change-Id: I1a6a59e161a436604a7ac8ab824396481dc99a20
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The protocol doesn't require this, but some clients seem to depend on it
nevertheless.
Fixes: QTBUG-75667
Change-Id: I47491c396d3c9193c7e51e13c7ca1586246e335c
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 869a38c082daf150a16b2abb230b420de3e4af31)
|