diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index da904560..0d23d9f9 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -687,9 +687,16 @@ void UBBoardController::zoom(const qreal ratio, QPointF scenePoint) QPointF offset = scenePoint - viewCenter; QPointF scalledOffset = offset / ratio; - mControlView->scale(ratio, ratio); + qreal currentZoom = ratio * mControlView->viewportTransform().m11() / mSystemScaleFactor; - qreal currentZoom = mControlView->viewportTransform().m11() / mSystemScaleFactor; + qreal usedRatio = ratio; + if (currentZoom > UB_MAX_ZOOM) + { + currentZoom = UB_MAX_ZOOM; + usedRatio = currentZoom * mSystemScaleFactor / mControlView->viewportTransform().m11(); + } + + mControlView->scale(usedRatio, usedRatio); QPointF newCenter = scenePoint - scalledOffset; diff --git a/src/core/UB.h b/src/core/UB.h index 862a63eb..78241f46 100644 --- a/src/core/UB.h +++ b/src/core/UB.h @@ -18,7 +18,7 @@ #include -#define UB_MAX_ZOOM 15 +#define UB_MAX_ZOOM 9 struct UBMimeType {