Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Text] Fix hit testing issues #13155

Merged
merged 9 commits into from Oct 9, 2023
Merged

Conversation

Gillibald
Copy link
Contributor

@Gillibald Gillibald commented Oct 6, 2023

What does the pull request do?

This PR adjusts the text formatting pipeline to be more in line with the WPF implementation.

GetBackspaceCaretCharacterHit now reports a hit position that fulfills grapheme boundaries instead of glyph cluster boundaries. That way ligatures can be deleted partially.

GetPreviousCaretCharacterHit is now always producing a hit on the left edge of some glyph. Therefore the result should always have a TrailingLength of zero in the middle of some text run.

WrapWithOverflow previously skipped runs entirely if not a single run fits into available space. This was adjusted so if nothing can be wrapped all layouted runs are added to the line.

What is the current behavior?

What is the updated/expected behavior with this PR?

How was the solution implemented (if it's not obvious)?

Checklist

Breaking changes

Obsoletions / Deprecations

Fixed issues

@avaloniaui-team
Copy link
Contributor

You can test this PR using the following package version. 11.0.999-cibuild0040582-beta. (feed url: https://nuget-feed-all.avaloniaui.net/v3/index.json) [PRBUILDID]

@avaloniaui-team
Copy link
Contributor

You can test this PR using the following package version. 11.0.999-cibuild0040590-beta. (feed url: https://nuget-feed-all.avaloniaui.net/v3/index.json) [PRBUILDID]

@maxkatz6 maxkatz6 added this pull request to the merge queue Oct 9, 2023
Merged via the queue into master with commit b83a5eb Oct 9, 2023
6 checks passed
@maxkatz6 maxkatz6 deleted the repro/text-formatter-freeze-on-inline branch October 9, 2023 12:23
@Gillibald Gillibald added the backport-candidate-11.0.x Consider this PR for backporting to 11.0 branch label Nov 6, 2023
maxkatz6 pushed a commit that referenced this pull request Dec 5, 2023
* Repro for Line_Formatting_For_Oversized_Embedded_Runs_Does_Not_Freeze

* Repro for Line_With_IncrementalTab_Should_Return_Correct_Backspace_Position

* Fix GetBackspaceCaretCharacterHit
Fix GetPreviousCaretCharacterHit
Fix WrapWithOverflow for not text runs

* Fix custom font manager

* Move DejaVuSans to a different location to prevent using it as a fallback

---------

Co-authored-by: Nikita Tsukanov <keks9n@gmail.com>
@maxkatz6 maxkatz6 added backported-11.0.x and removed backport-candidate-11.0.x Consider this PR for backporting to 11.0 branch labels Dec 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants