diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-09-07 13:10:03 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-09-07 13:10:03 +0200 |
commit | 1006fd8b4b92856c90fdd2d0df257e9b09c3f762 (patch) | |
tree | ecdf51ad3503454494534b02e8cea0364c93bfc7 | |
parent | 481cea71043dabf6d5ff33101a66693af86438e1 (diff) | |
parent | 2c9396b063ca03b36e03fbdb85853a410787313d (diff) | |
download | qtwayland-1006fd8b4b92856c90fdd2d0df257e9b09c3f762.tar.gz |
Merge remote-tracking branch 'origin/5.12.5' into 5.12
Change-Id: Ic73262146f51a9e7f4ffab46511654ad70c4f514
-rw-r--r-- | dist/changes-5.12.5 | 36 | ||||
-rw-r--r-- | src/client/qwaylandwindow.cpp | 9 | ||||
-rw-r--r-- | src/client/qwaylandwindow_p.h | 4 |
3 files changed, 48 insertions, 1 deletions
diff --git a/dist/changes-5.12.5 b/dist/changes-5.12.5 new file mode 100644 index 00000000..cecbdafa --- /dev/null +++ b/dist/changes-5.12.5 @@ -0,0 +1,36 @@ +Qt 5.12.5 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.12.0 through 5.12.4. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Compositor * +**************************************************************************** + + - [QTBUG-76104] Fixed a build error when configured with -no-opengl. + +**************************************************************************** +* QPA plugin * +**************************************************************************** + + - [QTBUG-76124] Fixed a crash when closing multiple popups at once. + - [QTBUG-76368] Fixed a crash that sometimes happened when starting + a drag-and-drop operation. + - [QTBUG-74085] Fixed crash when using custom Wayland surface. + - [QTBUG-76397] Fixed stuttering when the GUI thread is busy. + - [QTBUG-76657] Fixed occasional update problem when re-showing a hidden window. + - Fixed bug that could truncate large clipboard pastings. diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp index 95358232..fba6cc96 100644 --- a/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp @@ -211,7 +211,10 @@ void QWaylandWindow::initWindow() void QWaylandWindow::initializeWlSurface() { Q_ASSERT(!isInitialized()); - init(mDisplay->createSurface(static_cast<QtWayland::wl_surface *>(this))); + { + QWriteLocker lock(&mSurfaceLock); + init(mDisplay->createSurface(static_cast<QtWayland::wl_surface *>(this))); + } emit wlSurfaceCreated(); } @@ -249,6 +252,7 @@ void QWaylandWindow::reset(bool sendDestroyEvent) mSubSurfaceWindow = nullptr; if (isInitialized()) { emit wlSurfaceDestroyed(); + QWriteLocker lock(&mSurfaceLock); destroy(); } mScreens.clear(); @@ -1152,6 +1156,9 @@ void QWaylandWindow::requestUpdate() void QWaylandWindow::handleUpdate() { // TODO: Should sync subsurfaces avoid requesting frame callbacks? + QReadLocker lock(&mSurfaceLock); + if (!isInitialized()) + return; if (mFrameCallback) { wl_callback_destroy(mFrameCallback); diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h index ec9bd7d0..71770993 100644 --- a/src/client/qwaylandwindow_p.h +++ b/src/client/qwaylandwindow_p.h @@ -53,6 +53,8 @@ #include <QtCore/QWaitCondition> #include <QtCore/QMutex> +#include <QtCore/QReadWriteLock> + #include <QtGui/QIcon> #include <QtCore/QVariant> #include <QtCore/QLoggingCategory> @@ -276,6 +278,8 @@ private: static QMutex mFrameSyncMutex; static QWaylandWindow *mMouseGrab; + QReadWriteLock mSurfaceLock; + friend class QWaylandSubSurface; }; |