Fix LT-22630: Custom first vernacular fields defaulting to analysis#1015
Open
jasonleenaylor wants to merge 2 commits into
Open
Fix LT-22630: Custom first vernacular fields defaulting to analysis#1015jasonleenaylor wants to merge 2 commits into
jasonleenaylor wants to merge 2 commits into
Conversation
jasonleenaylor
marked this pull request as ready for review
July 16, 2026 23:26
The LT-22145 fix made StringSliceView.WsPending force DefaultAnalWs on every keystroke, so typing in custom fields configured for another writing system came out as analysis. WsPending now supplies a writing system only when the field is empty, using the ws configured for the slice and falling back to DefaultAnalWs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The chooser reads the selection's props, which fall back to the UI ws in an empty field even though typing uses the slice's configured ws. Set typing props on an insertion point in an empty field so the chooser and keyboard agree with what typing will produce. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jasonleenaylor
force-pushed
the
bugfix/LT-22630
branch
from
July 16, 2026 23:29
ca745e6 to
d6a977f
Compare
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.
Quick Summary
Fixes LT-22630: since FW 9.3.7, typing in a custom single-string field configured for First Vernacular came out in the first analysis writing system.
The LT-22145 fix overrode
StringSliceView.WsPendingto always returnDefaultAnalWsand swallow writes, turning the one-shot pending-ws mechanism into a permanent forced writing system for every keystroke in these slices. This PR scopes the override to the case LT-22145 was actually about — an empty field, where there is no adjacent text to inherit a ws from — and picks the ws the slice was configured with: the constructor-specified ws (custom fields), else thewsemptyconfig default, elseDefaultAnalWs. When the field has content, the getter returns -1 so typing inherits the surrounding text's writing system.StringSlice.cs: empty-field-scopedWsPendinggetter;DefaultWs(thewsemptyattribute) now stored on the view; empty-check handles String and MultiString/MultiUnicode props.StringSliceUtils.cs: the ws fallback chain as a pureGetWsForEmptyFieldfunction.StringSliceUtilsTests.cs: unit tests for the chain, including that negative magic-ws constants are never treated as real handles.CI-ready checklist
.github/commit-guidelines.md(subject ≤ 72 chars, no trailing punctuation; if body present, blank line then ≤ 80-char lines).Docs/workflows/ai-pr-workflow.mdand ranpr-preflightor the equivalent branch-readiness review before requesting review.Src/**folders touched, correspondingAGENTS.mdfiles are updated or explicitly confirmed still accurate.Notes for reviewers (optional)
wsemptyuser (Data Notebook Title,wsempty="analysis") resolves toDefaultAnalWs, identical to the last-resort fallback, so honoring it changes nothing for existing configurations.DetailControlsTestspass locally (67 passed, 1 skipped, including 4 new tests). Manual acceptance tests for both tickets in live FLEx are still pending; this is a draft until that verification is done.🤖 Generated with Claude Code
This change is