fix: Scale pan speed with zoom level for consistent movement
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
@@ -29,8 +29,12 @@ void Camera::mouseMoveEvent(QMouseEvent* event)
|
|||||||
if (event->buttons() & Qt::MiddleButton) {
|
if (event->buttons() & Qt::MiddleButton) {
|
||||||
if (QApplication::keyboardModifiers() & Qt::ShiftModifier) {
|
if (QApplication::keyboardModifiers() & Qt::ShiftModifier) {
|
||||||
// Pan
|
// Pan
|
||||||
setPanX(m_panX + dx / 100.0f);
|
float dist = -m_zoom;
|
||||||
setPanY(m_panY - dy / 100.0f);
|
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 {
|
} else {
|
||||||
// Rotate
|
// Rotate
|
||||||
setXRotation(m_xRot + 8 * dy);
|
setXRotation(m_xRot + 8 * dy);
|
||||||
|
|||||||
Reference in New Issue
Block a user