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

Inconsistency to emit ReceivedCharacter in composition on macOS #527

Closed
kwonoj opened this issue May 18, 2018 · 1 comment
Closed

Inconsistency to emit ReceivedCharacter in composition on macOS #527

kwonoj opened this issue May 18, 2018 · 1 comment
Labels
C - needs investigation Issue must be confirmed and researched DS - macos

Comments

@kwonoj
Copy link
Contributor

kwonoj commented May 18, 2018

Continuation from #518 (comment).

After digging more, I came to notice this one is specific case breaks composition and omitting certain event. In short, below sentence shows current behavior:

ㅇㅏ녕aㅇㅏ녕안녕

when composition is not in progress (composition's started), it does consider first input as single char event, and same for subsequent char event, then omit final consonant char. Once composition is in progress, this no longer occurs and each time insert_text is being called and contains composited char once it's done (and insert_text is not being called while composition is in progress). Non-compositable char (i.e a above) will breaks composition state, so will repro same once start new composition.

  1. first consonant, first vowel is forward into insert_text() as separate character
  2. final consonant for first char composition (if exists) it's omitted and does not forwarded into insert_text
  3. Once composition started after step 1, 2, subsequent composition will work until composition completed and start new one.

Events are as below for reference:

insert_text called
sending out char evt from  0x7fa7bcd56e70
WindowEvent { window_id: WindowId(Id(140358406186160)), event: ReceivedCharacter('ㅇ') }
set_marked_text
set_marked_text
set_marked_text
insert_text called
sending out char evt from  0x7fa7bcd56e70
set_marked_text
WindowEvent { window_id: WindowId(Id(140358406186160)), event: ReceivedCharacter('ㅏ') }
set_marked_text
set_marked_text
set_marked_text
insert_text called
sending out char evt from  0x7fa7bcd56e70
WindowEvent { window_id: WindowId(Id(140358406186160)), event: ReceivedCharacter('녕') }
insert_text called
WindowEvent { window_id: WindowId(Id(140358406186160)), event: ReceivedCharacter('a') }
insert_text called
WindowEvent { window_id: WindowId(Id(140358406186160)), event: ReceivedCharacter('ㅇ') }
set_marked_text
set_marked_text
set_marked_text
insert_text called
set_marked_text
WindowEvent { window_id: WindowId(Id(140358406186160)), event: ReceivedCharacter('ㅏ') }
set_marked_text
set_marked_text
set_marked_text
insert_text called
set_marked_text
WindowEvent { window_id: WindowId(Id(140358406186160)), event: ReceivedCharacter('녕') }
set_marked_text
set_marked_text
set_marked_text
insert_text called
set_marked_text
WindowEvent { window_id: WindowId(Id(140358406186160)), event: ReceivedCharacter('안') }
set_marked_text
set_marked_text
set_marked_text
insert_text called
WindowEvent { window_id: WindowId(Id(140358406186160)), event: ReceivedCharacter('녕') }
@kchibisov
Copy link
Member

The IMEs input got split into separate event now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C - needs investigation Issue must be confirmed and researched DS - macos
Development

No branches or pull requests

6 participants