You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After completing a composition on Android devices deleting re-triggers a composition and propagates the input with the old composition text. (see video below).
Unfortunately this breaks the following test cases for Korean.
1) CompositionHelper
Input
Should insert simple characters:
Uncaught AssertionError: expected 'ㅇㅇㅇ' to equal 'ㅇㅇ'
+ expected - actual
-ㅇㅇㅇ
+ㅇㅇ
at Timeout._onTimeout (src/browser/input/CompositionHelper.test.ts:65:22)
at listOnTimeout (node:internal/timers:557:17)
at processTimers (node:internal/timers:500:7)
2) CompositionHelper
Input
Should insert complex characters:
Uncaught AssertionError: expected '앙앙앙' to equal '앙앙'
+ expected - actual
-앙앙앙
+앙앙
at Timeout._onTimeout (src/browser/input/CompositionHelper.test.ts:101:30)
at listOnTimeout (node:internal/timers:557:17)
at processTimers (node:internal/timers:500:7)
3) CompositionHelper
Input
Should insert complex characters that change with following character:
Uncaught AssertionError: expected '아' to equal '아아'
+ expected - actual
-아
+아아
at Timeout._onTimeout (src/browser/input/CompositionHelper.test.ts:133:24)
at listOnTimeout (node:internal/timers:557:17)
at processTimers (node:internal/timers:500:7)
Details
Browser and browser version: Chrome, 106.x
OS version: Android 13, GBoard
xterm.js version: 5.x
Steps to reproduce
type 'a'
tap space (finishes composition)
tap delete
Observe there are two a's now
Video:
xterm-repro.mp4
The text was updated successfully, but these errors were encountered:
@Tyriar If you have any suggestions for what changes to make to solve this I'm happy to make a PR, also please let me know if there's any additional information I can provide that would make this easier to debug.
I'll add that this has been a serious ongoing issue, as standard English text entry through Android IME keyboard is almost unusable in current xtermjs. Any backspace seems to break the user's intended input.
After completing a composition on Android devices deleting re-triggers a composition and propagates the input with the old composition text. (see video below).
I was able to achieve the desired behavior by clearing the
_textarea
(by calling_textarea.value = '';
) when compositions are finalized inCompositionHelper
here: https://github.com/xtermjs/xterm.js/blob/master/src/browser/input/CompositionHelper.ts#L171.Unfortunately this breaks the following test cases for Korean.
Details
Steps to reproduce
Video:
xterm-repro.mp4
The text was updated successfully, but these errors were encountered: