Skip to content

Commit 87d52d5

Browse files
committed
Handle zoom events before parent to prevent normal scrolling
1 parent 62eb5c9 commit 87d52d5

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

plotview.cpp

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,22 @@ void PlotView::enableCursors(bool enabled)
166166
}
167167

168168
bool PlotView::viewportEvent(QEvent *event) {
169+
// Handle wheel events for zooming (before the parent's handler to stop normal scrolling)
170+
if (event->type() == QEvent::Wheel) {
171+
QWheelEvent *wheelEvent = (QWheelEvent*)event;
172+
if (QApplication::keyboardModifiers() & Qt::ControlModifier) {
173+
if (wheelEvent->angleDelta().y() > 0) {
174+
emit zoomIn();
175+
} else if (wheelEvent->angleDelta().y() < 0) {
176+
emit zoomOut();
177+
}
178+
return true;
179+
}
180+
}
181+
182+
// Handle parent eveents
169183
QAbstractScrollArea::viewportEvent(event);
184+
170185
// Pass mouse events to individual plot objects
171186
if (event->type() == QEvent::MouseButtonPress ||
172187
event->type() == QEvent::MouseMove ||
@@ -196,19 +211,6 @@ bool PlotView::viewportEvent(QEvent *event) {
196211
if (cursors.mouseEvent(event->type(), *mouseEvent))
197212
return true;
198213
}
199-
200-
// Handle wheel events for zooming
201-
if (event->type() == QEvent::Wheel) {
202-
QWheelEvent *wheelEvent = (QWheelEvent*)event;
203-
if (QApplication::keyboardModifiers() & Qt::ControlModifier) {
204-
if (wheelEvent->angleDelta().y() > 0) {
205-
emit zoomIn();
206-
} else if (wheelEvent->angleDelta().y() < 0) {
207-
emit zoomOut();
208-
}
209-
return true;
210-
}
211-
}
212214
return false;
213215
}
214216

0 commit comments

Comments
 (0)