diff --git a/src/Gui/Quarter/QuarterWidget.cpp b/src/Gui/Quarter/QuarterWidget.cpp index f7716d1a9d..f43c168712 100644 --- a/src/Gui/Quarter/QuarterWidget.cpp +++ b/src/Gui/Quarter/QuarterWidget.cpp @@ -936,8 +936,7 @@ bool QuarterWidget::viewportEvent(QEvent* event) // additionally handle it by this viewer. This is e.g. needed when // resizing a widget item because the cursor may already be outside // this widget. - if (event->type() == QEvent::Wheel || - event->type() == QEvent::MouseButtonDblClick || + if (event->type() == QEvent::MouseButtonDblClick || event->type() == QEvent::MouseButtonPress) { QMouseEvent* mouse = static_cast(event); QGraphicsItem *item = itemAt(mouse->pos()); @@ -954,6 +953,19 @@ bool QuarterWidget::viewportEvent(QEvent* event) return false; } } + else if (event->type() == QEvent::Wheel) { + auto wheel = static_cast(event); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + QPoint pos = wheel->pos(); +#else + QPoint pos = wheel->position().toPoint(); +#endif + QGraphicsItem* item = itemAt(pos); + if (!item) { + QGraphicsView::viewportEvent(event); + return false; + } + } return QGraphicsView::viewportEvent(event); }