From f3a1f73f4507def0d9f7cd34df1159bd25d254c9 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Tue, 17 Feb 2026 11:53:07 -0700 Subject: [PATCH] fix: Scale pan speed with zoom level for consistent movement Co-authored-by: aider (gemini/gemini-2.5-pro) --- src/Camera.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Camera.cpp b/src/Camera.cpp index 3779045..8ecc86d 100644 --- a/src/Camera.cpp +++ b/src/Camera.cpp @@ -29,8 +29,12 @@ void Camera::mouseMoveEvent(QMouseEvent* event) if (event->buttons() & Qt::MiddleButton) { if (QApplication::keyboardModifiers() & Qt::ShiftModifier) { // Pan - setPanX(m_panX + dx / 100.0f); - setPanY(m_panY - dy / 100.0f); + float dist = -m_zoom; + dist = qMin(dist, 200.0f); // Cap distance to avoid crazy fast pan. + // Match old speed at default zoom, and have a minimum speed. + float panFactor = dist * 0.000495f + 0.0001f; + setPanX(m_panX + dx * panFactor); + setPanY(m_panY - dy * panFactor); } else { // Rotate setXRotation(m_xRot + 8 * dy);