XTestFakeKeyEvent handles ISO_Level3_Latch inconsistently
Submitted by Arthur Huillet
Assigned to Xorg Project Team
Description
Hello,
I am using X.Org X Server 1.12.1 with the Xdummy wrapper script, and XTest to inject key events (this is as part of Xpra, a remote desktop project). My keyboard layout is -layout fr -variant dvorak, and it uses a dead key on 8.
Using a real keyboard, pressing "dead key" + i yields ì and "dead key" + e yields è. When using Xtest, ì works, but è appears as e.
Those are the relevant key bindings:
arthur@Gurney:~$ xmodmap -pke | egrep ' (17|31|93) '
keycode 17 = ISO_Level3_Latch 8 ISO_Level3_Latch 8 grave
keycode 31 = i I i I igrave Igrave
keycode 93 = e E e E egrave Egrave
If I do (pseudo code):
xtest_fake_key(17, press) xtest_fake_key(17, release) xtest_fake_key(31, press) xtest_fake_key(31, release)
I get ì.
If I do:
xtest_fake_key(17, press) xtest_fake_key(17, release) xtest_fake_key(93, press) xtest_fake_key(93, release)
I get e instead of è.
xtest_fake_key() is a trivial wrapper for XTestFakeKeyEvent().
Keycodes that "work" with dead key: 24 26 31 32 38 39 60 Keycodes that do not work (produce keysym as it it wasn't modified): 30 42 48 57 93
Help appreciated. Thanks
Version: 7.7 (2012.06)