microsoft / microsoft/PowerToys
ZoomIt Panorama Capture Pause/Resume Functionality
- 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
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