diff --git a/part/pageview.cpp b/part/pageview.cpp index 5fa0bcedf..fbb19546c 100644 --- a/part/pageview.cpp +++ b/part/pageview.cpp @@ -3251,15 +3251,12 @@ void PageView::wheelEvent(QWheelEvent *e) int delta = e->angleDelta().y(), vScroll = verticalScrollBar()->value(); e->accept(); - if ((e->modifiers() & Qt::ControlModifier) == Qt::ControlModifier) { - d->controlWheelAccumulatedDelta += delta; - if (d->controlWheelAccumulatedDelta <= -QWheelEvent::DefaultDeltasPerStep) { - slotZoomOut(); - d->controlWheelAccumulatedDelta = 0; - } else if (d->controlWheelAccumulatedDelta >= QWheelEvent::DefaultDeltasPerStep) { - slotZoomIn(); - d->controlWheelAccumulatedDelta = 0; - } + if ( (e->modifiers() & Qt::ControlModifier) == Qt::ControlModifier ) { + d->zoomFactor *= exp( (double)delta / 120.0 ); + d->blockPixmapsRequest = true; + updateZoom( ZoomRefreshCurrent ); + d->blockPixmapsRequest = false; + viewport()->repaint(); } else { d->controlWheelAccumulatedDelta = 0;