Internal PointerCaptureChanging event #19833
Open
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.
What does the pull request do?
Tracks the source of capture changes and introduces internal
PointerCaptureChanging
event that gives controls ability to suppress capture change. This allows to implement different mouse capture semantics, notably suppressing platform capture loss.What is the current behavior?
Implicit capture model (Linux+macOS) is enforced on all platforms.
What is the updated/expected behavior with this PR?
No behavior changes for Avalonia projects as no control handles this event.
How was the solution implemented (if it's not obvious)?
The
Pointer.Capture
will return early if thePointerCaptureChanging
event is marked as handled and will keep the existingCaptured
element.Checklist
Breaking changes
No breaking changes expected.