[Development] Qt/XCB applications and deadkeys (which cease working) (and sometimes the entire keyboard in Konsole)

René J. V. Bertin rjvbertin at gmail.com
Thu Jun 8 22:15:26 CEST 2017


Thiago Macieira wrote:

> Try using xev and see if any events are sent between the deadkey and the key.

I'll try that, but chances are that won't teach me anything. As I said in my OP, 
this never affects non-Qt applications like for instance Google Chrome. The fact 
affects both Qt4 (4.8.7) and Qt5 apps seems like a huge coincidence, unless they 
share the same basic X event handling.

So what I'd need at least for comparison is a Qt equivalent of xev :)

> Here's my output for <dead_acute> <e>:
> 
> KeyPress event, serial 40, synthetic NO, window 0x800001,
...
> KeyRelease event, serial 40, synthetic NO, window 0x800001,
>     root 0xdb, subw 0x0, time 444468270, (-1603,615), root:(217,676),
>     state 0x0, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,
>     XLookupString gives 2 bytes: (c2 b4) "´"
>     XFilterEvent returns: False
> 
> KeyPress event, serial 40, synthetic NO, window 0x800001,
...
>     state 0x0, keycode 26 (keysym 0x65, e), same_screen YES,
...
> KeyPress event, serial 40, synthetic NO, window 0x800001,
>     root 0xdb, subw 0x0, time 444470041, (-1603,615), root:(217,676),
>     state 0x0, keycode 0 (keysym 0xe9, eacute), same_screen YES,
>     XLookupString gives 0 bytes:
>     XmbLookupString gives 2 bytes: (c3 a9) "é"
>     XFilterEvent returns: False
> 
> KeyRelease event, serial 40, synthetic NO, window 0x800001,
>     root 0xdb, subw 0x0, time 444470098, (-1603,615), root:(217,676),
>     state 0x0, keycode 26 (keysym 0x65, e), same_screen YES,
>     XLookupString gives 1 bytes: (65) "e"
>     XFilterEvent returns: False
> 
> (note how there's an extra KeyPress I had never noticed before)

You mean the actual 'é' keypress in between the 'e' key press and key release?
The sequence appears surprising indeed, apparently clients must decide for 
themselves which events to filter and which to heed, whether they want to treat 
the deadkey event + keypress themselves or just get the preprocessed keypress.
> 

R




More information about the Development mailing list