My keyboard setting (Us-intl, with dead keys) uses the dead keys (so for example: ') to compose characters like ', é, ë, ", etc. The vi input mode does not work with correctly with this: the characters appear, but repeating an insert using . does not insert those characters, skipping them. Additionally, the characters appear even if they were typed in normal mode (which should ignore them). I traced the cause of the problem, and it appears that different events are send for composed keys (QInputMethodEvent instead of QKeyEvent), and that code just inserts the characters, without passing them to the input mode code. (I also sent an e-mail to the mailing list, but did not receive a reply, so I made this bug report) Reproducible: Always Steps to Reproduce: 1. Use a keyboard layout with dead keys 2. Type a character like é in vi mode (e.g. "café") 3. Repeat the insertion, by using . Actual Results: The é is not present in the repeated insertion (so "caf" appears) Expected Results: It should have shown "café" My kate version is 15.12 (which I couldn't choose in the version box)
Created attachment 96266 [details] This fixes the issue for me This patch solves the issue for me, but might introduce bugs, since I do not know the code very well.
This is possibly a duplicate of https://bugs.kde.org/show_bug.cgi?id=332935
*** Bug 332935 has been marked as a duplicate of this bug. ***
*** Bug 396376 has been marked as a duplicate of this bug. ***
*** This bug has been marked as a duplicate of bug 388138 ***
Keep the bug with the patch.
*** Bug 388138 has been marked as a duplicate of this bug. ***
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/ktexteditor/-/merge_requests/588
I tried to adapt the patch but I need someone to test if that now works in vi mode and still in the normal mode.
Git commit 52a0a3bb228aba16c04e625e97e0cf071c323495 by Christoph Cullmann. Committed on 12/08/2023 at 17:00. Pushed by cullmann into branch 'master'. support composed keys in vi mode M +3 -1 src/view/kateviewinternal.cpp https://invent.kde.org/frameworks/ktexteditor/-/commit/52a0a3bb228aba16c04e625e97e0cf071c323495