summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-09-07 13:10:03 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-09-07 13:10:03 +0200
commit1006fd8b4b92856c90fdd2d0df257e9b09c3f762 (patch)
treeecdf51ad3503454494534b02e8cea0364c93bfc7
parent481cea71043dabf6d5ff33101a66693af86438e1 (diff)
parent2c9396b063ca03b36e03fbdb85853a410787313d (diff)
Merge remote-tracking branch 'origin/5.12.5' into 5.12
-rw-r--r--dist/changes-5.12.536
-rw-r--r--src/client/qwaylandwindow.cpp9
-rw-r--r--src/client/qwaylandwindow_p.h4
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;
};