With Xorg and separate keyboard layout per window, cannot switch layout via top bar menu
This might really be a mutter thing (it smells like another in the series of "fix one bug, cause one bug" X11 focus issues...), but I'm reporting it in gnome-shell to start with. Original bug report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1032388 (I can reproduce it in a VM and that's what I'm basing this report on).
Affected version
- Debian 12 prerelease with GNOME 44 packages from experimental
- GNOME Shell 44~rc-1 (44.rc + !2684 (merged) + revert 5c935af7 + smaller patches)
- Mutter 44~rc-1 (44.rc + mutter!1441 + various smaller patches)
and also
- Debian 12 prerelease
- GNOME Shell 43.3-3 (43.3 + translation updates up to 6f7ff15e + !2667 (merged))
- Mutter 43.3-5 (43.3 + mutter@a8a34818 + mutter@12ce58db + mutter!2877 (merged) + mutter!2878 (merged) + mutter!1441 + various smaller patches)
Issue reproducible only in Xorg mode, not Wayland.
No extensions enabled.
Bug summary
Switching between input methods/keyboard layouts using the menu in the top bar doesn't work, but only in Xorg, and only when the option to have a separate input method for each window is active.
Steps to reproduce
- In Settings -> Keyboard, have two or more keyboard layouts or input methods, for example English (UK), English (US) and Japanese (Anthy)
- Still in Settings -> Keyboard, choose "Switch input sources individually for each window"
- Have at least one window open (I used gnome-terminal, bug also reproduced with both Settings and gnome-terminal)
- Press Super+Space to cycle through keyboard layouts / input methods, for example stopping on
en1
= English (UK)- It works correctly, meaning mutter#2674 (closed) is resolved in this version
- Click mouse on keyboard layout / input method indicator to open the menu
- Click on a different keyboard layout / input method, for example
en2
= English (US)
What happened
- Focus returns to the previously focused window, for example gnome-terminal
- Keyboard layout / input method indicator stays on its previous value, for example
en1
= English (UK) - Typing into the terminal uses previous layout, for example Shift+2 continues to give me
"
as per English (UK) layout
What did you expect to happen
- Focus returns to the previously focused window, for example gnome-terminal
- Keyboard layout / input method indicator should have changed to the one I clicked,
en2
= English (US) - Typing into the terminal uses the layout I clicked, for example Shift+2 should give me
@
as per English (US) layout
Relevant logs, screenshots, screencasts etc.
Nothing new is logged in the Journal when I reproduce the bug (at least with 44.rc, not confirmed with 43).
Edited by Simon McVittie