Created attachment 1480776 [details]
I am trying this test case
in Gnome Wayland on Fedora 29 installed from:
Khoong cos gif quis hown ddoocj laapj tuwj do
KKKhhhooonnnggg cccooossss gggiiiffff qqquuuiiissss hhhooowwwwnnn dddddddooooooocccjjjjjj lllaaaaaaapppjjjjjj tttuuuwwwwjjjj dddooo
But the expected result is:
Không có gì quí hơn độc lập tự do
The test works fine in Gnome Xorg.
It seems a regression from my patch of gnome-shell.
If you delete my patch from the local build, another bug will appear.
My patch is to send key events with clutter_event_put() but it seems it cannot change the keysyms against the actual typing on physical keyboard.
ibus-bogo forwards three keysyms from the actual typing.
E.g. If type 'a', three '`', BackSpace and 'a' are forwarded but the three keysyms are reverted to three 'a'.
I have to bring back the original way to forward keycode with libxkbcommon and need to investigate how to stop the infinite loop as the original bug of bug #1611894 and bug #1625142 .
This issue is fixed in my latest patches.
But there are some problems.
1. ibus-bogo uses multiple forward-key-event for one type and need to add forward-key-events for key release events in this case.
2. ibus-bogo uses forward-key-event for Latin chars but mutter uses keycode and there is no keycode for Latin chars so probably ibus-bogo needs to use ibus_engine_commit_text() instead.
3. ibus-bogo uses forward-key-event for BackSpace so if ibus_engine_commit_text() is used, the are are a time lag between forwarded a BackSpace and committed latin char. Currently I have no idea to commit a char after a key release event is done. Probably I think ibus-bogo could be simplified if forward-key-event is deleted in ibus-bogo.