Promote auto-zoom to production: configurable intensity, sensitivity, and dead zone#1646
Open
bytemines wants to merge 7 commits intoCapSoftware:mainfrom
Open
Promote auto-zoom to production: configurable intensity, sensitivity, and dead zone#1646bytemines wants to merge 7 commits intoCapSoftware:mainfrom
bytemines wants to merge 7 commits intoCapSoftware:mainfrom
Conversation
… and dead zone Add "Auto Zoom" toggle to Studio Mode recording setup, replacing the experimental settings toggle. Add zoom intensity and sensitivity sliders in the editor sidebar with generate/remove controls. Add dead zone radius to spring focus interpolation to suppress viewport jitter. Increase main window height to fit the new control.
…t fix - Propagate GeneralSettingsStore::get errors instead of swallowing them - Clamp base_zoom_amount and sensitivity before threshold math - Compare squared distance instead of computing sqrt every sample - Fix dead_zone_zero test to verify actual cursor tracking behavior
- Use Self::default_dead_zone_radius() in Default impl instead of hardcoded 0.03 - Change cursor-default to cursor-pointer on auto-zoom toggle button
Auto-zoom now triggers exclusively on click events, matching the industry standard (Screen Studio, ScreenArc, FocuSee). Cursor movement data is still used to determine zoom focal point during active segments, but no longer independently creates zoom intervals.
Auto-zoom now filters cursor events to trimmed time ranges and remaps timestamps to timeline-time before generating segments. Previously it used the full raw recording duration and all events.
- Guard against zero/NaN/negative timescale in remap logic - Borrow project_config instead of cloning - Clear zoom selection when removing all zoom segments
|
anything blocking this from being merged? @richiemcilroy happy to do whatever to push this over the line |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
newshowcase.mp4
Context
Auto-zoom has existed since PR #558 (Aug 2025) and was refined in
#1090 and #1106, but it remained experimental and hard to discover.
Users have been asking for it (issues #352, #758) — some citing it
as the reason they'd switch from Screen Studio or FocuSee to Cap.
The feature was gated behind:
custom_cursor_capture2experimental setting (must enable first)This PR makes auto-zoom accessible, configurable, and production-ready.
Changes
Recording setup
Editor
custom_cursor_capture2gate from Auto zoom mode tabprojectActionsZoom algorithm
Rendering
dead_zone_radiustoScreenMovementSpring(default 0.03)Backend
auto_zoom_amountandauto_zoom_sensitivitytoGeneralSettingsStoreWhat we did NOT change
custom_cursor_capture2still experimental)Closes #758