Conversation
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.
Enabling IME on an already-focused X11 window replaces its input context without transferring focus to the replacement. Since the window itself remains focused, no new focus event arrives to correct this.
With IBus, this can leave the replacement context unfocused until the first key event and cause the candidate window to appear at an incorrect position, even though the application supplied the correct cursor area.
Return the context replacement result from
Ime::set_ime_allowed, then focus the active window's final replacement after draining pending IME requests. This avoids activating intermediate contexts that are immediately replaced by subsequent requests.Context replacement and IME event ordering are preserved. Unchanged requests do not schedule focus, and a failed final replacement cancels pending focus. Inactive windows are not focused, and the cursor-area equality cache is unchanged.
Validation
Tested against Winit
8b5f46d4and IBusd464316d, which already includes the X11 candidate-object selection fix, using a private Xvfb/Openbox session.XSetICFocuscall.Cross-platform CI is pending.
Checklist