ibus input methods do not receive focus_out/focus_in events when the focus is moved between windows (Gnome Wayland, works in Gnome Xorg)
Versions: gnome-shell-43.2-2.fc37.x86_64 ibus-1.5.27-11.1.fc37.x86_64 ibus-typing-booster-2.21.3-1.fc37.noarch
How to reproduce:
-
Use a Gnome Wayland session
-
Make sure that ibus-typing-booster is installed -- Add Typing Booster as an input method in the gnome control center -- Select the Typing Booster input method in the gnome panel -- Open the setup tool of Typing Booster and set debug level to >= 2 (That option is in the second tab of the setup tool with the label "Options")
-
Start a gedit
-
Start a firefox like
GNOME_ACCESSIBILITY=1 firefox
-
Start a gnome-terminal
-
In the gnome-terminal, execute
tail -F .local/share/ibus-typing-booster/debug.log | grep focus
-
Click into an entry field of firefox and type.
-
Click into gedit and type
-
Click into gnome-terminal and type
Problem:
- In the terminal where
tail -F .local/share/ibus-typing-booster/debug.log | grep focus
runs, no output appears because ibus-typing-booster sees no focus_out/focus_in events. - On top of the candidate list shown by ibus-typing-booster is a debug string like
🪟:gnome-terminal-server:mfabian@fedora:~
. This debug string shows which window ibus-typing-booster believes to have focus. This string should changed depending on which window currently has focus, but it does not.
Video showing the problem: