diff options
Diffstat (limited to 'media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch')
| -rw-r--r-- | media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch b/media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch new file mode 100644 index 00000000000..365f9676bd2 --- /dev/null +++ b/media-plugins/gst-plugins-qt6/files/gst-plugins-qt6-1.24.11-kamoso.patch @@ -0,0 +1,141 @@ +https://mail.kde.org/pipermail/release-team/2025-June/013691.html +https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9226 + +From ae57ec2ebbbbac9de40dd36e2ed54b12fe7ed869 Mon Sep 17 00:00:00 2001 +From: Aleix Pol <aleixpol@kde.org> +Date: Mon, 26 May 2025 23:51:16 +0200 +Subject: [PATCH] qml6glitem,qtitem: Allow configuring if the item will consume + input events + +At the moment we are always accepting the input events to forward into +GStreamer infrastructure. This works but we might have other uses for +such events elsewhere in the QtQuick scene so allow opting out to this +behaviour. + +Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9226> +--- + ext/qt6/qt6glitem.cc | 22 +++++++++++++++++-- + ext/qt6/qt6glitem.h | 9 +++++++- + 2 files changed, 28 insertions(+), 3 deletions(-) + +diff --git a/ext/qt6/qt6glitem.cc b/ext/qt6/qt6glitem.cc +index 971a027de969..d1d89c3fd7f3 100644 +--- a/ext/qt6/qt6glitem.cc ++++ b/ext/qt6/qt6glitem.cc +@@ -193,6 +193,16 @@ Qt6GLVideoItem::setForceAspectRatio(bool force_aspect_ratio) + emit forceAspectRatioChanged(force_aspect_ratio); + } + ++void ++Qt6GLVideoItem::setAcceptEvents(bool accept) ++{ ++ if (accept == acceptEvents) ++ return; ++ ++ acceptEvents = accept; ++ Q_EMIT acceptEventsChanged(acceptEvents); ++} ++ + bool + Qt6GLVideoItem::getForceAspectRatio() + { +@@ -487,18 +497,22 @@ Qt6GLVideoItem::wheelEvent(QWheelEvent * event) + g_object_unref (element); + } + g_mutex_unlock (&this->priv->lock); ++ ++ event->setAccepted(acceptEvents); + } + + void +-Qt6GLVideoItem::hoverEnterEvent(QHoverEvent *) ++Qt6GLVideoItem::hoverEnterEvent(QHoverEvent *event) + { + mouseHovering = true; ++ event->setAccepted(acceptEvents); + } + + void +-Qt6GLVideoItem::hoverLeaveEvent(QHoverEvent *) ++Qt6GLVideoItem::hoverLeaveEvent(QHoverEvent *event) + { + mouseHovering = false; ++ event->setAccepted(acceptEvents); + } + + void +@@ -527,6 +541,7 @@ Qt6GLVideoItem::hoverMoveEvent(QHoverEvent * event) + } + } + g_mutex_unlock (&this->priv->lock); ++ event->setAccepted(acceptEvents); + } + + void +@@ -589,6 +604,7 @@ Qt6GLVideoItem::touchEvent(QTouchEvent * event) + + g_object_unref (element); + g_mutex_unlock (&this->priv->lock); ++ event->setAccepted(acceptEvents); + } + + void +@@ -641,12 +657,14 @@ Qt6GLVideoItem::mousePressEvent(QMouseEvent * event) + { + forceActiveFocus(); + sendMouseEvent(event, TRUE); ++ event->setAccepted(acceptEvents); + } + + void + Qt6GLVideoItem::mouseReleaseEvent(QMouseEvent * event) + { + sendMouseEvent(event, FALSE); ++ event->setAccepted(acceptEvents); + } + + void +diff --git a/ext/qt6/qt6glitem.h b/ext/qt6/qt6glitem.h +index bfe28a1fc606..886a4a221f54 100644 +--- a/ext/qt6/qt6glitem.h ++++ b/ext/qt6/qt6glitem.h +@@ -73,7 +73,10 @@ class Qt6GLVideoItem : public QQuickItem, protected QOpenGLFunctions + READ getForceAspectRatio + WRITE setForceAspectRatio + NOTIFY forceAspectRatioChanged) +- ++ Q_PROPERTY(bool acceptEvents ++ READ getAcceptEvents ++ WRITE setAcceptEvents ++ NOTIFY acceptEventsChanged) + public: + Qt6GLVideoItem(); + ~Qt6GLVideoItem(); +@@ -83,6 +86,8 @@ public: + void setForceAspectRatio(bool); + bool getForceAspectRatio(); + bool itemInitialized(); ++ bool getAcceptEvents() const { return acceptEvents; } ++ void setAcceptEvents(bool accept); + + QSharedPointer<Qt6GLVideoItemInterface> getInterface() { return proxy; }; + /* private for C interface ... */ +@@ -91,6 +96,7 @@ public: + Q_SIGNALS: + void itemInitializedChanged(); + void forceAspectRatioChanged(bool); ++ void acceptEventsChanged(bool acceptEvents); + + private Q_SLOTS: + void handleWindowChanged(QQuickWindow * win); +@@ -120,6 +126,7 @@ private: + + quint32 mousePressedButton; + bool mouseHovering; ++ bool acceptEvents = true; + + QSharedPointer<Qt6GLVideoItemInterface> proxy; + }; +-- +GitLab + |
