Forward both cursor and preedit rectangles to IME to fix CJK candidate popup jumping
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 3.1k
- Forks
- 237
- Avg merge
- 1h 43m
- Merged PRs (30d)
- 1
Description
Hi,
I'd like to raise an input method issue that affects CJK users on Wayland. Currently the candidate popup follows the cursor rectangle, and while typing pinyin the cursor moves continuously, so the popup jumps around constantly. It's been a known pain for years.
The proposed fix in wayland-protocols is to let applications send both a cursor rectangle and a preedit rectangle. The compositor then passes both to the IME, which can anchor to the preedit start instead of the moving cursor. Relevant discussion:
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/517
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/521
Wayfire is based on wlroots, and I've also reported this there. But it would be great if Wayfire could also express support for this and maybe help ensure wlroots implements it properly. Even a comment from a compositor project helps prioritize the fix.
Is this something you'd consider? I'm happy to test any builds.
Thanks!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with wayland-protocols merge requests 517 and 521, then inspect how Wayfire relies on wlroots for input-method handling. Determine whether the proposed protocol support belongs in Wayfire or wlroots; done requires a clearly agreed implementation path and a way to verify that both cursor and preedit rectangles reach the IME.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100