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

CJK IME (Sogou) input broken on Windows in Electron 13 #3679

Closed
Eugeny opened this issue Mar 12, 2022 · 1 comment · Fixed by #3680
Closed

CJK IME (Sogou) input broken on Windows in Electron 13 #3679

Eugeny opened this issue Mar 12, 2022 · 1 comment · Fixed by #3680
Labels
Milestone

Comments

@Eugeny
Copy link
Member

Eugeny commented Mar 12, 2022

IME bug of the day: Sogou input doesn't trigger compositionend when hosting xterm in Electron 13.

Repro: yarn electron https://xtermjs.org.

The only usable event is input with .composed && .inputType == "insertText", but that is currently being ignored due to the Linux IME fix in #3533. I'm going to try to figure out a way to distinguish between these events, but it's possible that xterm is going to need a way for the user to indicate the platform it's running on, or some sort of a "quirks mode".

It's also possible that Sogou's internal "whitelist" doesn't recognize Electron 13 (microsoft/vscode#115814 (comment))

@Eugeny Eugeny added type/bug Something is misbehaving platform/windows area/ime labels Mar 12, 2022
@Eugeny
Copy link
Member Author

Eugeny commented Mar 12, 2022

Reference traces:

  • Windows Chrome / Sogou IME

image

  • Windows Electron 13 / Sogou IME

image

  • Windows / emoji IME

image

  • macOS / emoji IME

image

  • macOS / composition

image

  • Linux / compose key

image

  • Linux Chrome / Sogou IME

image

  • Linux Electron 13 / Sogou IME

image

Summary

Sogou

  • Windows / Chrome: input/insertText -> compositionend -> keyup
  • Windows / Electron 13: input/insertText -> keyup
  • Linux: keydown -> input/insertText -> keyup

Emoji

  • Windows: compositionend with the emoji
  • macOS: input/insertText with the emoji, .composed = false

Notes

As it appears, neither keydown nor compositionend are reliable. input is the only one that's consistent across all platforms (except Windows emoji IME)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants