GNOME Bugzilla – Bug 692726
keyboard layout switching is slow (not instant) which is really disturbing while typing
Last modified: 2013-04-02 23:02:43 UTC
Description of problem: In Gnome 3.6, keyboard layout switching is slow. Previously, when I pressed the shortcut to switch the layout and started typing right after that, new characters appeared with the new layout. However, in Fedora 18, when I change the layout and start typing, a few characters appear with the previous layout and then the new layout is used, which is really frustrating when you are typing fast. For example, I'm typing in English. NOW, I press Alt+Shift to switch the layout to 'fa' and press a few keys: "sgام". Look! The first two characters are English, and the two others are Persian (fa). Sometimes it takes even a few words to switch! It also happens when I switch back to English (a few letters are written in 'fa' layout and then it starts writing in English. How reproducible: most of the time when typing fast. The delay varies, sometimes unnoticeable and sometimes even a few seconds! Steps to Reproduce: 1. Enable two keyboard layouts (e.g. 'en' and 'fa') 2. Type in 'en', then press the shortcut to change the layout and type immediately again. If you didn't observe the bug, repeat this step. a few tries should be enough. On very fast systems it might not happen, however in not-so-old system it happens (my laptop has a 1.8 Core 2 Due CPU). Also, it never happened in previous Gnome's like 3.4 or older ones in the same system. Actual results: In most of the times, the layout is not switched immediately. Expected results: Any keys pressed right after pressing the switching shortcut should be written with the new layout. Reference: https://bugzilla.redhat.com/show_bug.cgi?id=896490
Owen spoke to me about this the other day and mentioned that we can do this with a sync keyboard grab. We'll probably need a D-Bus interface in g-s-d to do the switch instead of poking the gsetting directly. Anyway, yes we know about it and I have a plan on how to fix it for 3.8.
*** This bug has been marked as a duplicate of bug 697007 ***