microsoft / microsoft/PowerToys

ZoomIt Panorama Capture Pause/Resume Functionality

Open
#47,769 0 comments 0 reactions 0 assignees View on GitHub
Needs-Triage Product-ZoomIt
Dominant language
C
Stars
139k
Forks
8.6k
PR merge metrics
PR metrics pending

Description

### Description of the new feature / enhancement

**Current Behavior**
ZoomIt's panorama capture continuously captures frames while scrolling, and the stitcher later combines all captured frames into a single panoramic image. There is currently no way to selectively skip parts of the content during capture.

**Desired Feature**
Add a **pause/resume hotkey** (e.g., Ctrl+Shift+P or a configurable key) that temporarily suspends frame capture while keeping the panorama selection active. When paused, the capture loop should:

1. Stop capturing new frames

2. Maintain the selection rectangle on screen (possibly with a different color to indicate paused state)

3. Continue listening for the same hotkey to resume capture

4. Discard any frames that would have been captured during the paused period

### Scenario when this would be used?

**Use Case Example**
A user wants to capture page 1 and page 3 of a document while scrolling through all three pages:

1. User starts panorama capture and scrolls through page 1 → frames are captured

2. User presses the pause hotkey before starting to scroll through page 2

3. User scrolls through page 2 → no frames are captured

4. User presses the resume hotkey before reaching page 3

5. User scrolls through page 3 → frames are captured again

6. User stops capture → the final panorama contains only page 1 and page 3 stitched together

**Expected Behavior**
Pause during capture: The selection rectangle should change color (e.g., from yellow to orange) to provide visual feedback that capture is paused

Resume: The selection rectangle returns to its normal color, and frame capture continues normally

Stitching: The final stitched image contains only frames captured during active periods; gaps from paused periods result in shorter output (the stitcher simply has fewer frames to work with, which is the desired outcome)

No duplicate frames on resume: The first frame after resume should be compared against the last frame before pause for duplicate detection, just like consecutive frames

Cancel works during pause: Pressing ESC should cancel the entire capture even while paused

### Supporting information

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by locating ZoomIt's panorama capture loop, selection rectangle rendering, hotkey handling, and duplicate-frame detection. Trace how capture cancellation and stitching consume frames. Done means pause/resume skips frames while preserving the selection, updates its visual state, supports ESC cancellation, and avoids duplicate frames after resuming.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.