Repository navigation
Conversation
Contributor
ApprovabilityVerdict: Needs Human Approval Macroscope's review found this PR requires human approval — This production editor fix adds substantial cross-platform composition and dead-key state handling, including asynchronous reconciliation and undo integration. Its focused tests reduce risk, but the new runtime state machine is complex enough to merit human review. You can add or adjust custom eligibility rules. Learn more. |
Contributor
This branch has not been deployed
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.
With US-International input, selecting
wordand pressing apostrophe then Space replaces the word with'on Linux and macOS. This restores the existing selection-surround behavior for dead keys after #20350. Related: the maintainer's request to verify selection wrapping.Keep eligible selected text in place while the dead key resolves, then surround it when a delimiter commits. Accented letters still replace the selection. Handle both native composition and Windows' direct text commits, preserve one-step undo, and discard stale selections.
Verification:
xdg_shellsurface. The reporter also verified the isolated desktop build on CachyOS/Wayland.Reproduce the focused browser checks with:
macOS before the fix: apostrophe + Space replaces the selected
wordwith'.macos-before.mp4
macOS after the fix: apostrophe + Space produces
'word'and keepswordselected.macos-after.mp4
Windows native verification
All 16 cases pass in rich and plain modes, including accents, selection wrapping, and undo/redo.
windows-after.mp4
Linux X11 and native Wayland verification
X11: all 16 native cases pass under Xvfb/Openbox.
linux-x11-after.mp4
Native Wayland: all 16 cases pass under Sway, with XWayland disabled. The selected word remains in every recorded transaction and frame.
linux-wayland-after.mp4
Passing Linux run, X11 environment and event traces, and Wayland environment, surface, and event traces.
The recordings include layout probes and native keyboard cases. Passing Windows and macOS native run, macOS event traces, and Windows event traces. The test code stays on the fork's test branch.
Implemented with GPT-6.1-sol in Codex.