Skip to content

Fix/region selector snapshot race - #163

Merged
castdrian merged 2 commits into
itoolio:devfrom
lenisko:fix/region-selector-snapshot-race
Oct 25, 2026
Merged

castdrian merged 2 commits into
itoolio:devfrom
lenisko:fix/region-selector-snapshot-race

Conversation

@lenisko

@lenisko lenisko commented Oct 24, 2026

Copy link
Copy Markdown
Contributor

This time correctly tested a fix for doubled selector, stuck pointer and flicker on x,y position.

Sorry for last one #162 wasn't tested, since I had issues with local build.

…ezing the screen

The previous fix took a fresh window list once the selector was showing, but
the panels only reach ScreenCaptureKit's list a few milliseconds after they
appear. The first snapshot never contained them, so ishare wasn't excluded
and the freeze-frames still caught the overlay with its dimming and the
crosshair guides at the pointer's starting position. The backdrop capture
now polls the shareable content until it lists every selector panel, giving
up after 500 ms.
…er appears

Now that the selector opens before the freeze-frames are ready, the view had
no backdrop for its first frames and fell back to the coordinate pill meant
for when the magnifier is off, which then vanished as the magnifier took
over. The screenshot flow now tells the selector that backdrops are coming,
and each display holds the pill back until its backdrop arrives. Displays
that never get one, and selectors that are never sent backdrops such as the
interval capture, still show the coordinates.
@lenisko
lenisko requested a review from castdrian as a code owner October 24, 2026 23:43
@github-actions

Copy link
Copy Markdown
Contributor

Code coverage

Area Files Lines Coverage Minimum
App 1 72 / 148 48.6%
Automation 4 347 / 579 59.9%
CLI 3 275 / 325 84.6%
Capture 45 2506 / 7004 35.8% 23.0% met
Editor 28 3839 / 6665 57.6%
Extensions 3 0 / 99 0.0%
Http 42 3823 / 5195 73.6% 70.0% met
ISCU 9 914 / 1054 86.7% 80.0% met
Intents 2 80 / 256 31.2%
LocalShare 3 511 / 671 76.2%
Models 9 505 / 562 89.9%
Preferences 1 11 / 14 78.6%
Recording 25 1976 / 5644 35.0%
Share Extension 1 0 / 202 0.0%
Shared 2 42 / 74 56.8%
Sync 3 276 / 442 62.4%
Util 46 2214 / 5798 38.2%
Views 67 2322 / 15911 14.6%
Widgets 3 0 / 224 0.0%
Total 297 19713 / 50867 38.8%

Every coverage minimum is met.

Measured on ce9bfd4.

@castdrian
castdrian merged commit eb80089 into itoolio:dev Oct 25, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants