diff --git a/MouseEventListener-Allow-accepting-mouse-event.patch b/MouseEventListener-Allow-accepting-mouse-event.patch deleted file mode 100644 index 7a7878f..0000000 --- a/MouseEventListener-Allow-accepting-mouse-event.patch +++ /dev/null @@ -1,147 +0,0 @@ -From e2795e9472333d5e8b2ce70017ca705474ebe3d2 Mon Sep 17 00:00:00 2001 -From: Kai Uwe Broulik -Date: Thu, 23 Nov 2017 11:04:01 +0100 -Subject: [MouseEventListener] Allow accepting mouse event - -This will keep the event from propagating. Accepting a press event will also not result in -clicked or pressAndHold being handled. - -In Qt 5.10 event propagation changed resulting in FolderView opening both the item context menu -and containment context menu. Imho this actually makes sense since we never accepted the -mouse event there. - -Differential Revision: https://phabricator.kde.org/D8864 ---- - .../kquickcontrolsaddons/mouseeventlistener.cpp | 30 ++++++++++++++++++++++ - .../kquickcontrolsaddons/mouseeventlistener.h | 13 ++++++++++ - 2 files changed, 43 insertions(+) - -diff --git a/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.cpp b/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.cpp -index 0b8d981..10aa2f7 100644 ---- a/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.cpp -+++ b/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.cpp -@@ -171,6 +171,11 @@ void MouseEventListener::mousePressEvent(QMouseEvent *me) - emit pressed(&dme); - emit pressedChanged(); - -+ if (dme.isAccepted()) { -+ me->setAccepted(true); -+ return; -+ } -+ - m_pressAndHoldTimer->start(QGuiApplication::styleHints()->mousePressAndHoldInterval()); - } - -@@ -187,6 +192,10 @@ void MouseEventListener::mouseMoveEvent(QMouseEvent *me) - - KDeclarativeMouseEvent dme(me->pos().x(), me->pos().y(), me->screenPos().x(), me->screenPos().y(), me->button(), me->buttons(), me->modifiers(), screenForGlobalPos(me->globalPos())); - emit positionChanged(&dme); -+ -+ if (dme.isAccepted()) { -+ me->setAccepted(true); -+ } - } - - void MouseEventListener::mouseReleaseEvent(QMouseEvent *me) -@@ -205,6 +214,10 @@ void MouseEventListener::mouseReleaseEvent(QMouseEvent *me) - emit clicked(&dme); - m_pressAndHoldTimer->stop(); - } -+ -+ if (dme.isAccepted()) { -+ me->setAccepted(true); -+ } - } - - void MouseEventListener::wheelEvent(QWheelEvent *we) -@@ -260,7 +273,12 @@ bool MouseEventListener::childMouseEventFilter(QQuickItem *item, QEvent *event) - emit pressed(&dme); - emit pressedChanged(); - -+ if (dme.isAccepted()) { -+ return true; -+ } -+ - m_pressAndHoldTimer->start(QGuiApplication::styleHints()->mousePressAndHoldInterval()); -+ - break; - } - case QEvent::HoverMove: { -@@ -280,6 +298,10 @@ bool MouseEventListener::childMouseEventFilter(QQuickItem *item, QEvent *event) - KDeclarativeMouseEvent dme(myPos.x(), myPos.y(), screenPos.x(), screenPos.y(), Qt::NoButton, Qt::NoButton, he->modifiers(), nullptr); - //qDebug() << "positionChanged..." << dme.x() << dme.y(); - emit positionChanged(&dme); -+ -+ if (dme.isAccepted()) { -+ return true; -+ } - break; - } - case QEvent::MouseMove: { -@@ -304,6 +326,10 @@ bool MouseEventListener::childMouseEventFilter(QQuickItem *item, QEvent *event) - m_pressAndHoldEvent = new KDeclarativeMouseEvent(myPos.x(), myPos.y(), me->screenPos().x(), me->screenPos().y(), me->button(), me->buttons(), me->modifiers(), screenForGlobalPos(me->globalPos())); - } - emit positionChanged(&dme); -+ -+ if (dme.isAccepted()) { -+ return true; -+ } - break; - } - case QEvent::MouseButtonRelease: { -@@ -321,6 +347,10 @@ bool MouseEventListener::childMouseEventFilter(QQuickItem *item, QEvent *event) - emit clicked(&dme); - m_pressAndHoldTimer->stop(); - } -+ -+ if (dme.isAccepted()) { -+ return true; -+ } - break; - } - case QEvent::UngrabMouse: { -diff --git a/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.h b/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.h -index 2799fda..c34ca25 100644 ---- a/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.h -+++ b/src/qmlcontrols/kquickcontrolsaddons/mouseeventlistener.h -@@ -43,6 +43,7 @@ class KDeclarativeMouseEvent : public QObject - Q_PROPERTY(Qt::MouseButtons buttons READ buttons) - Q_PROPERTY(Qt::KeyboardModifiers modifiers READ modifiers) - Q_PROPERTY(QScreen* screen READ screen CONSTANT) -+ Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted NOTIFY acceptedChanged) - - public: - KDeclarativeMouseEvent(int x, int y, int screenX, int screenY, -@@ -69,10 +70,21 @@ public: - Qt::KeyboardModifiers modifiers() const { return m_modifiers; } - QScreen* screen() const { return m_screen; } - -+ bool isAccepted() const { return m_accepted; } -+ void setAccepted(bool accepted) { -+ if (m_accepted != accepted) { -+ m_accepted = accepted; -+ emit acceptedChanged(); -+ } -+ } -+ - // only for internal usage - void setX(int x) { m_x = x; } - void setY(int y) { m_y = y; } - -+Q_SIGNALS: -+ void acceptedChanged(); -+ - private: - int m_x; - int m_y; -@@ -82,6 +94,7 @@ private: - Qt::MouseButtons m_buttons; - Qt::KeyboardModifiers m_modifiers; - QScreen *m_screen; -+ bool m_accepted = false; - }; - - class KDeclarativeWheelEvent : public QObject --- -cgit v0.11.2 - diff --git a/kdeclarative.spec b/kdeclarative.spec index f7b0436..d5e651e 100644 --- a/kdeclarative.spec +++ b/kdeclarative.spec @@ -36,8 +36,6 @@ Group: System/GUI/KDE Url: http://www.kde.org Source: http://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz Source1: baselibs.conf -# PATCH-FIX-UPSTREAM -Patch: MouseEventListener-Allow-accepting-mouse-event.patch BuildRequires: cmake >= 3.0 BuildRequires: extra-cmake-modules >= %{_kf5_bugfix_version} BuildRequires: fdupes @@ -124,7 +122,6 @@ Development files. %lang_package -n %lname %prep %setup -q -%patch -p1 %build %cmake_kf5 -d build