Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • xserver xserver
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 887
    • Issues 887
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 109
    • Merge requests 109
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • xorg
  • xserverxserver
  • Issues
  • #284
Closed
Open
Created Apr 16, 2012 by Bugzilla Migration User@bugzilla-migration

XTestFakeKeyEvent handles ISO_Level3_Latch inconsistently

Submitted by Arthur Huillet

Assigned to Xorg Project Team

Link to original bug (#48770)

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)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking