Skip to content

[Feature]: Hold-to-preview button to see the zoomed result while editing a zoom region #612

@auberginewly

Description

@auberginewly

Background

When a zoom region is selected and playback is paused, the editor intentionally shows the full un-zoomed frame so you can position the focus point by clicking/dragging on the overlay (src/components/video-editor/VideoPlayback.tsx shouldShowUnzoomedView, updateFocusFromClientPoint). This is great for placement, but you can't see what the zoom will actually look like at the chosen focus + depth without hitting Play.

Proposal

Add a press-and-hold "Preview" control in the zoom settings (near the depth/focus controls). While held, the preview renders the selected region's zoom at the current focus + depth — like a before/after photo compare. On release, it returns to the un-zoomed editing view.

Net result: position the focus point and instantly preview the zoom effect without entering playback. This also removes the surprise some users hit where pausing on a selected zoom snaps to the un-zoomed view — they now get an explicit, discoverable affordance to see the zoomed frame.

Sketch (requirements-level, open to maintainer direction)

  • A transient isPreviewingZoom flag: true on pointer-down of the Preview button, false on pointer-up / pointer-leave / blur.
  • shouldShowUnzoomedView becomes hasSelectedZoom && !isPlaying && !isPreviewingZoom; when previewing, apply the selected region's transform at the current playhead.
  • Button lives in the zoom controls in SettingsPanel.tsx; state wired through VideoEditor.tsx down to VideoPlayback (mirrors existing zoom-prop wiring).
  • No change to focus-point math or the default editing view; preview is purely additive and momentary.

Open questions

  • Placement: settings panel button vs. an on-overlay button?
  • Hold-to-preview vs. a toggle?

Happy to send a PR once the direction is confirmed.

Environment

  • OpenScreen main branch

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions