Repository navigation
Fix capture preflight when the surface output arrives late - #410
Merged
Merged
Conversation
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.
Freeze and Zoom can fail before requesting a screenshot when a toolbar click starts capture without a selected output and the compositor reports that output during the suppression barrier. The saved layout becomes stale, but the previous retry rule rejected requests whose original output was unknown.
Allow one bounded preflight retry on the selected capture backend. An unbound request waits for its first active output and settled geometry, then repeats the suppression barrier with a fresh generation. Retain the original request and keyboard policy; loss or replacement of a bound output remains terminal. Direct backends require only their active-output geometry, while portal retries require complete desktop geometry.
Track all entered outputs so a neighbour leaving or the selected output re-entering preserves the overlay's source. Explicit monitor-switch targets remain sticky; provisional XDG configure guesses yield to the compositor's first enter. Add output/layout/retry diagnostics under
wayscriber::capture_diagnosticsand document the existing overlay file logs.Regression coverage drives toolbar events through both hidden frames and verifies capture actually starts on the original backend, including direct backends with no portal. It also covers repeated enters during settling, late GTK acknowledgements, bounded output discovery, output loss/switches, and XDG configure guesses.
Validation:
git diff --checkpass.-D warningspasses with both all features and no default features.--test-threads=1: 5,409 all-feature tests and 5,204 no-default-feature tests.The repository protocol tests cover the reported interleaving. The reporter's physical KWin mixed-scale setup still needs a retest.
Refs #398 and the remaining toolbar-path report.