diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2019-12-15 18:09:03 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2019-12-15 18:09:03 +0000 |
commit | 7bc9c63c9da678a7e6fceb095d56c634afd22c56 (patch) | |
tree | 4a67d50a439e9af63947e5f8b6ba3719af98b6c9 /dev-qt/qtwayland/files | |
parent | b284a3168fa91a038925d2ecf5e4791011ea5e7d (diff) |
gentoo resync : 15.12.2019
Diffstat (limited to 'dev-qt/qtwayland/files')
3 files changed, 120 insertions, 0 deletions
diff --git a/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-crash.patch b/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-crash.patch new file mode 100644 index 000000000000..b4e78684bb61 --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-crash.patch @@ -0,0 +1,55 @@ +From 962b9be7992cef672cb6307af5653c97382c334f Mon Sep 17 00:00:00 2001 +From: Johan Klokkhammer Helsing <johan.helsing@qt.io> +Date: Fri, 1 Nov 2019 11:24:26 +0100 +Subject: [PATCH] Client: Fix crash when showing a child window with a hidden + parent + +[ChangeLog][QPA plugin] Fixed a crash when showing a window with a hidden +parent. + +Now we just avoid creating the subsurface, so nothing is shown. Seems to be +the same behavior as on xcb. + +Fixes: QTBUG-79674 +Change-Id: Ia46fcd9a0da5aad4704816a41515cb1e128ac65f +Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> +--- + src/client/qwaylanddisplay.cpp | 4 ++++ + src/client/qwaylandwindow.cpp | 7 ++++--- + 2 files changed, 8 insertions(+), 3 deletions(-) + +diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp +index 78524f6fc..27e38ccf7 100644 +--- a/src/client/qwaylanddisplay.cpp ++++ b/src/client/qwaylanddisplay.cpp +@@ -109,6 +109,10 @@ struct ::wl_region *QWaylandDisplay::createRegion(const QRegion &qregion) + return nullptr; + } + ++ // Make sure we don't pass NULL surfaces to libwayland (crashes) ++ Q_ASSERT(parent->object()); ++ Q_ASSERT(window->object()); ++ + return mSubCompositor->get_subsurface(window->object(), parent->object()); + } + +diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp +index 8d34afd1f..7098568b4 100644 +--- a/src/client/qwaylandwindow.cpp ++++ b/src/client/qwaylandwindow.cpp +@@ -124,9 +124,10 @@ void QWaylandWindow::initWindow() + if (shouldCreateSubSurface()) { + Q_ASSERT(!mSubSurfaceWindow); + +- QWaylandWindow *p = static_cast<QWaylandWindow *>(QPlatformWindow::parent()); +- if (::wl_subsurface *ss = mDisplay->createSubSurface(this, p)) { +- mSubSurfaceWindow = new QWaylandSubSurface(this, p, ss); ++ auto *parent = static_cast<QWaylandWindow *>(QPlatformWindow::parent()); ++ if (parent->object()) { ++ if (::wl_subsurface *subsurface = mDisplay->createSubSurface(this, parent)) ++ mSubSurfaceWindow = new QWaylandSubSurface(this, parent, subsurface); + } + } else if (shouldCreateShellSurface()) { + Q_ASSERT(!mShellSurface); +-- +2.16.3 diff --git a/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-linuxdmabuf-build.patch b/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-linuxdmabuf-build.patch new file mode 100644 index 000000000000..f9b6b6571182 --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-linuxdmabuf-build.patch @@ -0,0 +1,29 @@ +From 23ea5504200ff5f7e40bd264280a78db09c1bc5b Mon Sep 17 00:00:00 2001 +From: Johan Klokkhammer Helsing <johan.helsing@qt.io> +Date: Fri, 8 Nov 2019 13:58:04 +0100 +Subject: [PATCH] WIP: Fix compilation of linuxdmabuf compositor plugin + +WIP, because I'm not sure if this is the way to go, but it fixes +compilation on my machine. + +Fixes: QTBUG-79709 +Change-Id: I3190ef56e0e162636efea440dff7e760cf11fcd0 +--- + .../compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h b/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h +index 2abc2ce6b..d1f4a3039 100644 +--- a/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h ++++ b/src/hardwareintegration/compositor/linux-dmabuf-unstable-v1/linuxdmabuf.h +@@ -53,6 +53,7 @@ + + #include <EGL/egl.h> + #include <EGL/eglext.h> ++#include <EGL/eglmesaext.h> + + // compatibility with libdrm <= 2.4.74 + #ifndef DRM_FORMAT_RESERVED +-- +2.16.3 + diff --git a/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-touch-ignored.patch b/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-touch-ignored.patch new file mode 100644 index 000000000000..4a33d97bf17e --- /dev/null +++ b/dev-qt/qtwayland/files/qtwayland-5.13.2-fix-touch-ignored.patch @@ -0,0 +1,36 @@ +From 57c28f461a066c03ef8ae3f823c040fa91876fb8 Mon Sep 17 00:00:00 2001 +From: Johan Klokkhammer Helsing <johan.helsing@qt.io> +Date: Mon, 4 Nov 2019 14:21:18 +0100 +Subject: [PATCH] Fix touch being ignored when down and motion are in the same + frame + +The Wayland protocol gives no guarantees about which events are part of a +frame, so handle the case where we receive wl_touch.down and wl_touch.motion +within the same frame. + +Fixes: QTBUG-79744 +Change-Id: I5dd9302576d81da38e003c8e7e74da6a98def603 +Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> +--- + src/client/qwaylandinputdevice.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp +index 8f3df8e4d..193ce714b 100644 +--- a/src/client/qwaylandinputdevice.cpp ++++ b/src/client/qwaylandinputdevice.cpp +@@ -1062,7 +1062,10 @@ void QWaylandInputDevice::handleTouchPoint(int id, Qt::TouchPointState state, co + tp.area.moveCenter(globalPosition); + } + +- tp.state = state; ++ // If the touch point was pressed earlier this frame, we don't want to overwrite its state. ++ if (tp.state != Qt::TouchPointPressed) ++ tp.state = state; ++ + tp.pressure = tp.state == Qt::TouchPointReleased ? 0 : 1; + } + +-- +2.16.3 + |