Bug 1625245 - ibus-bogo does not work in Gnome Wayland (works fine in Gnome Xorg)
Summary: ibus-bogo does not work in Gnome Wayland (works fine in Gnome Xorg)
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: gnome-shell
Version: 29
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: Owen Taylor
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2018-09-04 13:20 UTC by Mike FABIAN
Modified: 2018-09-11 09:52 UTC (History)
4 users (show)

Clone Of:
Last Closed:

Attachments (Terms of Use)
ibus-bogo-does-not-work-on-gnome-wayland.png (25.47 KB, image/png)
2018-09-04 13:20 UTC, Mike FABIAN
no flags Details

Description Mike FABIAN 2018-09-04 13:20:23 UTC
Created attachment 1480776 [details]

I am trying this test case


in Gnome Wayland on Fedora 29 installed from:


I type 

    Khoong cos gif quis hown ddoocj laapj tuwj do

and get:

    KKKhhhooonnnggg cccooossss gggiiiffff qqquuuiiissss hhhooowwwwnnn dddddddooooooocccjjjjjj lllaaaaaaapppjjjjjj tttuuuwwwwjjjj dddooo

(see screenshot).

But the expected result is:

    Không có gì quí hơn độc lập tự do

The test works fine in Gnome Xorg.

Comment 1 fujiwara 2018-09-07 04:21:42 UTC
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 .

Comment 2 fujiwara 2018-09-11 09:52:38 UTC
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.

Note You need to log in before you can comment on or make changes to this bug.