Comment 4 for bug 286617

Revision history for this message
Julian Kniephoff (jules-k) wrote :

I can confirm this bug from a clean 8.10 install (without any additional repositories).

I also had a look into the source code. The assertion occurs in the function HelperX11::getModifiers. In this function, there is a for loop with a range of 0 to 3 (i=0; i < 4), which iterates over the entries of the KeySym list returned by XGetKeyboardMapping. However, this list may be longer than 4 elements, which is the case for "@", obviously. Changing the loops range to 0-SymsPerKey (which is a value returned also by XGetKeyboardMapping, indicating how many elements the list has), removes the assertion -- the autotype completes without crashing the application.
However: Now a "q" is typed instead of a "@" which is caused by the function HelperX11::pressModifiers. For me, getModifiers returns a 4 (with the above change) for "@" but there is no case for 4 in the switch statement of pressModifiers, so no modifier key press is simulated.

I am not an X11 guru but maybe there is one here and he can do something with this information.