commit:     6b50e652026faaf86a6703bc0757d7909accb31e
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 11 20:59:08 2022 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Fri Nov 11 23:17:00 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b50e652

media-libs/phonon-gstreamer: EAPI-8 bump, fix open/save dialog in Wayland

KDE-bug: https://bugs.kde.org/show_bug.cgi?id=445196

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/phonon-gstreamer-4.10.0-wayland.patch    | 46 ++++++++++++++++++++++
 .../phonon-gstreamer-4.10.0-r1.ebuild              | 43 ++++++++++++++++++++
 2 files changed, 89 insertions(+)

diff --git 
a/media-libs/phonon-gstreamer/files/phonon-gstreamer-4.10.0-wayland.patch 
b/media-libs/phonon-gstreamer/files/phonon-gstreamer-4.10.0-wayland.patch
new file mode 100644
index 000000000000..ef1697a8395a
--- /dev/null
+++ b/media-libs/phonon-gstreamer/files/phonon-gstreamer-4.10.0-wayland.patch
@@ -0,0 +1,46 @@
+From bbbb160f30a394655cff9398d17961142388b0f2 Mon Sep 17 00:00:00 2001
+From: David Edmundson <[email protected]>
+Date: Wed, 17 Nov 2021 15:20:08 +0000
+Subject: [PATCH] Only create window handles for actual windows
+
+winId() creates a platform window for the given widget. This makes sense
+for the topmost widget in a tree, we can't assume the parent widget is
+the topmost widget.
+
+Doing this on XCB is confusing and wrong, but apparently harmless. Doing
+this on wayland causes issues as we promote the parent window to a
+subsurface but never show that window leaving things in a bizarre
+corrupt state that leads to content not updating.
+
+BUG: 445196
+---
+ gstreamer/videowidget.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/gstreamer/videowidget.cpp b/gstreamer/videowidget.cpp
+index bd27b21f..83fa9b9e 100644
+--- a/gstreamer/videowidget.cpp
++++ b/gstreamer/videowidget.cpp
+@@ -158,7 +158,7 @@ void VideoWidget::setupVideoBin()
+                 gst_object_unref(videopad);
+                 QWidget *parentWidget = qobject_cast<QWidget*>(parent());
+                 if (parentWidget) {
+-                    parentWidget->winId();  // Due to some existing issues 
with alien in 4.4,
++                    parentWidget->window()->winId();  // Due to some existing 
issues with alien in 4.4,
+                                             // we must currently force the 
creation of a parent widget.
+                 }
+                 m_isValid = true; //initialization ok, accept input
+@@ -171,8 +171,8 @@ void VideoWidget::setupVideoBin()
+         gst_object_unref(videopad);
+         QWidget *parentWidget = qobject_cast<QWidget*>(parent());
+         if (parentWidget) {
+-            parentWidget->winId();  // Due to some existing issues with alien 
in 4.4,
+-                                    // we must currently force the creation 
of a parent widget.
++            parentWidget->window()->winId();  // Due to some existing issues 
with alien in 4.4,
++                                    // we must currently force the creation 
of a parent widget's window
+         }
+         m_isValid = true; //initialization ok, accept input
+     }
+-- 
+GitLab
+

diff --git a/media-libs/phonon-gstreamer/phonon-gstreamer-4.10.0-r1.ebuild 
b/media-libs/phonon-gstreamer/phonon-gstreamer-4.10.0-r1.ebuild
new file mode 100644
index 000000000000..3b0a28563e2d
--- /dev/null
+++ b/media-libs/phonon-gstreamer/phonon-gstreamer-4.10.0-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN="phonon-backend-gstreamer"
+inherit ecm kde.org
+
+DESCRIPTION="GStreamer backend for the Phonon multimedia library"
+HOMEPAGE="https://community.kde.org/Phonon";
+
+if [[ ${KDE_BUILD_TYPE} = release ]]; then
+       
SRC_URI="mirror://kde/stable/phonon/${MY_PN}/${PV}/${MY_PN}-${PV}.tar.xz"
+       S="${WORKDIR}/${MY_PN}-${PV}"
+       KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="LGPL-2.1+ || ( LGPL-2.1 LGPL-3 )"
+SLOT="0"
+IUSE="alsa debug +network"
+
+DEPEND="
+       dev-libs/glib:2
+       dev-libs/libxml2:2
+       dev-qt/qtgui:5
+       dev-qt/qtopengl:5
+       dev-qt/qtwidgets:5
+       dev-qt/qtx11extras:5
+       media-libs/gst-plugins-base:1.0
+       media-libs/gstreamer:1.0
+       >=media-libs/phonon-4.10.60
+       media-plugins/gst-plugins-meta:1.0[alsa?,ogg,vorbis]
+       virtual/opengl
+"
+RDEPEND="${DEPEND}
+       network? ( media-plugins/gst-plugins-soup:1.0 )
+"
+BDEPEND="
+       dev-qt/linguist-tools:5
+       virtual/pkgconfig
+"
+
+PATCHES=( "${FILESDIR}/${P}-wayland.patch" ) # KDE-bug 445196

Reply via email to