Fix IME composition handling in option inputs#3183
Conversation
|
@don9x2E thanks for your fix :) please sign-off your commit |
Signed-off-by: don9x2E <revan@kakao.com>
8916840 to
9ee83f1
Compare
Chartman123
left a comment
There was a problem hiding this comment.
Looks good from my point of view
|
/backport to stable5.2 |
|
Follow-up update pushed in commit 4b8ae6d. What was added after the approved IME patch:
This resolves the remaining Korean IME edge-case observed in real usage. |
|
Design proposal only (no code change): restoring auto-create safely If we want to bring back auto-create for the local option row later, a safer staged approach is:
Acceptance criteria for any auto-create restoration:
|
|
Hello there, We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process. Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6 Thank you for contributing to Nextcloud and we hope to hear from you soon! (If you believe you should not receive this message, you can add yourself to the blocklist.) |
Summary
This PR now includes a follow-up fix after the initial IME handling patch.
Enter(after composition ends) or explicit+button clickWhy this follow-up was needed
The previous attempt improved composition guards, but real Korean IME usage still hit edge cases where input-driven side effects could trigger unexpectedly in the local option row.
In practice, automatic creation on input was still risky under composition timing differences across browsers/IME implementations.
Behavioral change and trade-off
The local empty option row no longer auto-creates an option purely from input events.
Instead, creation is explicit (
Enteror+button).This slightly reduces automation, but removes IME race/side-effect paths and gives deterministic behavior for CJK input users.
Repro (before)
Verification (after)
Entercreates exactly one option+button creates exactly one option