diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp index 296a7966d..c0fd282a4 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.cpp @@ -188,6 +188,11 @@ void NodeParamViewWidgetBridge::CreateWidgets() UpdateWidgetValues(); + // Install event filter to disable widgets picking up scroll events + foreach (QWidget* w, widgets_) { + w->installEventFilter(&scroll_filter_); + } + } } @@ -694,4 +699,16 @@ void NodeParamViewWidgetBridge::PropertyChanged(const QString &key, const QVaria } } +bool NodeParamViewScrollBlocker::eventFilter(QObject *watched, QEvent *event) +{ + Q_UNUSED(watched) + + if (event->type() == QEvent::Wheel) { + // Block this event + return true; + } + + return false; +} + } diff --git a/app/widget/nodeparamview/nodeparamviewwidgetbridge.h b/app/widget/nodeparamview/nodeparamviewwidgetbridge.h index a4698e001..7704229d2 100644 --- a/app/widget/nodeparamview/nodeparamviewwidgetbridge.h +++ b/app/widget/nodeparamview/nodeparamviewwidgetbridge.h @@ -30,6 +30,13 @@ namespace olive { +class NodeParamViewScrollBlocker : public QObject +{ + Q_OBJECT +public: + virtual bool eventFilter(QObject* watched, QEvent* event) override; +}; + class NodeParamViewWidgetBridge : public QObject, public TimeTargetObject { Q_OBJECT @@ -63,6 +70,8 @@ private: NodeInputDragger dragger_; + NodeParamViewScrollBlocker scroll_filter_; + private slots: void WidgetCallback();