[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