diff options
Diffstat (limited to 'dev-qt/qtwayland/files/qtwayland-5.15.2-guard-mResizeDirty.patch')
-rw-r--r-- | dev-qt/qtwayland/files/qtwayland-5.15.2-guard-mResizeDirty.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.2-guard-mResizeDirty.patch b/dev-qt/qtwayland/files/qtwayland-5.15.2-guard-mResizeDirty.patch new file mode 100644 index 000000000000..c2e377cff054 --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-5.15.2-guard-mResizeDirty.patch @@ -0,0 +1,37 @@ +From 2e2042aa18efd1389a140a5d0028d8359bd455a7 Mon Sep 17 00:00:00 2001 +From: David Edmundson <davidedmundson@kde.org> +Date: Thu, 3 Feb 2022 19:42:33 +0000 +Subject: [PATCH] Guard mResizeDirty by the correctMutex + +mResizeDirty is used in the GUI thread in setCanResize which can be +called from the GUI thread. It is queried and set whilst the resizeLock +is held. We need to guard our usage. + +Change-Id: I5f8dcf8aa2cb2c4bb6274103df1da9e3e268605a +--- + src/client/qwaylandwindow.cpp | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp +index 949374b1..7aee362a 100644 +--- a/src/client/qwaylandwindow.cpp ++++ b/src/client/qwaylandwindow.cpp +@@ -357,11 +357,12 @@ void QWaylandWindow::setGeometry(const QRect &rect) + if (mWindowDecoration) + mWindowDecoration->update(); + +- if (mResizeAfterSwap && windowType() == Egl && mSentInitialResize) ++ if (mResizeAfterSwap && windowType() == Egl && mSentInitialResize) { ++ QMutexLocker lock(&mResizeLock); + mResizeDirty = true; +- else ++ } else { + QWindowSystemInterface::handleGeometryChange(window(), geometry()); +- ++ } + mSentInitialResize = true; + } + QRect exposeGeometry(QPoint(), geometry().size()); +-- +GitLab + |