[neon/qt6/qt6-wayland/Neon/release] debian/patches: add backported krunner patch as aper Kai's request
Carlos De Maine
null at kde.org
Fri Feb 2 23:59:31 GMT 2024
Git commit 5000603a5dd0626c3d97fa644d7d6417bb3de9a8 by Carlos De Maine.
Committed on 02/02/2024 at 23:59.
Pushed by carlosdem into branch 'Neon/release'.
add backported krunner patch as aper Kai's request
A +51 -0 debian/patches/kruuner.diff
A +1 -0 debian/patches/series
https://invent.kde.org/neon/qt6/qt6-wayland/-/commit/5000603a5dd0626c3d97fa644d7d6417bb3de9a8
diff --git a/debian/patches/kruuner.diff b/debian/patches/kruuner.diff
new file mode 100644
index 0000000..58d4691
--- /dev/null
+++ b/debian/patches/kruuner.diff
@@ -0,0 +1,51 @@
+diff --git a/src/client/qwaylandshmbackingstore.cpp b/src/client/qwaylandshmbackingstore.cpp
+index ffd17ce8..fc5e7822 100644
+--- a/src/client/qwaylandshmbackingstore.cpp
++++ b/src/client/qwaylandshmbackingstore.cpp
+@@ -204,7 +204,6 @@ void QWaylandShmBackingStore::endPaint()
+ void QWaylandShmBackingStore::ensureSize()
+ {
+ waylandWindow()->setBackingStore(this);
+- waylandWindow()->createDecoration();
+ resize(mRequestedSize);
+ }
+
+diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
+index b34e448b..672ddc5b 100644
+--- a/src/client/qwaylandwindow.cpp
++++ b/src/client/qwaylandwindow.cpp
+@@ -1041,6 +1041,8 @@ void QWaylandWindow::setWindowFlags(Qt::WindowFlags flags)
+
+ bool QWaylandWindow::createDecoration()
+ {
++ Q_ASSERT_X(QThread::currentThreadId() == QThreadData::get2(thread())->threadId.loadRelaxed(),
++ "QWaylandWindow::createDecoration", "not called from main thread");
+ if (!mDisplay->supportsWindowDecoration())
+ return false;
+
+@@ -1121,11 +1123,7 @@ bool QWaylandWindow::createDecoration()
+ // size and are not redrawn, leaving the new buffer empty. As a simple
+ // work-around, we trigger a full extra update whenever the client-side
+ // window decorations are toggled while the window is showing.
+- // Note: createDecoration() is sometimes called from the render thread
+- // of Qt Quick. This is essentially wrong and could potentially cause problems,
+- // but until the underlying issue has been fixed, we have to use invokeMethod()
+- // here to avoid asserts.
+- QMetaObject::invokeMethod(window(), &QWindow::requestUpdate);
++ window()->requestUpdate();
+ }
+
+ return mWindowDecoration;
+diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
+index 039ec1a6..685ad1e4 100644
+--- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
++++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
+@@ -313,8 +313,6 @@ bool QWaylandGLContext::makeCurrent(QPlatformSurface *surface)
+
+ if (m_currentWindow->isExposed())
+ m_currentWindow->setCanResize(false);
+- if (m_decorationsContext != EGL_NO_CONTEXT && !m_currentWindow->decoration())
+- m_currentWindow->createDecoration();
+
+ if (eglSurface == EGL_NO_SURFACE) {
+ m_currentWindow->updateSurface(true);
\ No newline at end of file
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..3982002
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+krunner.diff
More information about the Neon-commits
mailing list