diff --git a/src/components/video-editor/videoPlayback/cursorFollowCamera.test.ts b/src/components/video-editor/videoPlayback/cursorFollowCamera.test.ts index 8493623a..0fe59018 100644 --- a/src/components/video-editor/videoPlayback/cursorFollowCamera.test.ts +++ b/src/components/video-editor/videoPlayback/cursorFollowCamera.test.ts @@ -72,9 +72,9 @@ describe("computeCursorFollowFocus", () => { { snapToEdgesRatio: 0.25 }, ); - expect(firstShift.cx).toBeCloseTo(0.7, 6); + expect(firstShift.cx).toBeCloseTo(0.575, 6); expect(firstShift.cy).toBeCloseTo(0.5, 6); - expect(secondShift.cx).toBeCloseTo(0.7, 6); + expect(secondShift.cx).toBeCloseTo(0.595, 6); expect(secondShift.cy).toBeCloseTo(0.5, 6); }); diff --git a/src/components/video-editor/videoPlayback/cursorFollowCamera.ts b/src/components/video-editor/videoPlayback/cursorFollowCamera.ts index 75106a81..94727581 100644 --- a/src/components/video-editor/videoPlayback/cursorFollowCamera.ts +++ b/src/components/video-editor/videoPlayback/cursorFollowCamera.ts @@ -100,15 +100,15 @@ function recenterFocusWhenCursorLeavesSafeZone( let nextFocusY = currentFocus.cy; if (cursorFocus.cx < safeLeft) { - nextFocusX = cursorFocus.cx; + nextFocusX = cursorFocus.cx + halfSpan - safeZoneInset; } else if (cursorFocus.cx > safeRight) { - nextFocusX = cursorFocus.cx; + nextFocusX = cursorFocus.cx - halfSpan + safeZoneInset; } if (cursorFocus.cy < safeTop) { - nextFocusY = cursorFocus.cy; + nextFocusY = cursorFocus.cy + halfSpan - safeZoneInset; } else if (cursorFocus.cy > safeBottom) { - nextFocusY = cursorFocus.cy; + nextFocusY = cursorFocus.cy - halfSpan + safeZoneInset; } return clampFocusToScale(