[Development] Qt/XCB applications and deadkeys (which cease working) (way to reproduce)
Allan Sandfeld Jensen
kde at carewolf.com
Fri Jun 9 16:08:20 CEST 2017
On Freitag, 9. Juni 2017 15:30:11 CEST René J. V. Bertin wrote:
> Yay, I have found a transient way to trigger the issue transiently!
>
> github.com:RJVB/qtwheeltest
>
> Builds against both Qt4 and Qt5.
>
> To trigger the issue under Plasma:
>
> - optionally type an é or other accented character to verify things work,
> and to have the event output on the calling terminal
> - move the mouse pointer to the titlebar taking care not to lose focus,
> press the right button (or menu key on the keyboard), expand the "Move to
> Desktop" submenu, and then hit the keyboard shortcut to send the window to
> another desktop
> - without moving the mouse, use the keyboard shortcut to switch to that
> desktop.
>
> For me, the issue is now triggered until I cycle the focus to and fro
> another app. Under Qt4, trying to enter an é will yield "´e", under Qt5 I'm
> only able to get the unaccented character.
>
> Evidently one cannot use xev now because it'll involve a focus change. But
> the "protected" text editor window has the event tracer function from qev,
> which should help.
>
Then my issue is different I think, because I just don't get the dead-key at
all composed or not. With qev:
QKeyEvent(ShortcutOverride, Key_AltGr, GroupSwitchModifier)
QKeyEvent(KeyPress, Key_AltGr, GroupSwitchModifier)
QKeyEvent(ShortcutOverride, Key_Dead_Acute, GroupSwitchModifier)
QKeyEvent(KeyPress, Key_Dead_Acute, GroupSwitchModifier)
QKeyEvent(KeyRelease, Key_Dead_Acute, GroupSwitchModifier)
QKeyEvent(KeyRelease, Key_AltGr)
QKeyEvent(ShortcutOverride, Key_E, text="e")
QKeyEvent(KeyPress, Key_E, text="e")
QKeyEvent(KeyRelease, Key_E, text="e")
with xev:
KeyPress event, serial 40, synthetic NO, window 0x6a00001,
root 0xb8, subw 0x0, time 1982840014, (78,1462), root:(2002,1488),
state 0x0, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 40, synthetic NO, window 0x6a00001,
root 0xb8, subw 0x0, time 1982840550, (78,1462), root:(2002,1488),
state 0x80, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,
XLookupString gives 2 bytes: (c2 b4) "´"
XmbLookupString gives 0 bytes:
XFilterEvent returns: True
KeyRelease event, serial 40, synthetic NO, window 0x6a00001,
root 0xb8, subw 0x0, time 1982840646, (78,1462), root:(2002,1488),
state 0x80, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,
XLookupString gives 2 bytes: (c2 b4) "´"
XFilterEvent returns: False
KeyRelease event, serial 40, synthetic NO, window 0x6a00001,
root 0xb8, subw 0x0, time 1982840726, (78,1462), root:(2002,1488),
state 0x80, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen
YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 40, synthetic NO, window 0x6a00001,
root 0xb8, subw 0x0, time 1982841654, (78,1462), root:(2002,1488),
state 0x0, keycode 26 (keysym 0x65, e), same_screen YES,
XLookupString gives 1 bytes: (65) "e"
XmbLookupString gives 1 bytes: (65) "e"
XFilterEvent returns: True
KeyPress event, serial 40, synthetic NO, window 0x6a00001,
root 0xb8, subw 0x0, time 1982841654, (78,1462), root:(2002,1488),
state 0x0, keycode 0 (keysym 0xe9, eacute), same_screen YES,
XKeysymToKeycode returns keycode: 26
XLookupString gives 0 bytes:
XmbLookupString gives 2 bytes: (c3 a9) "é"
XFilterEvent returns: False
KeyRelease event, serial 40, synthetic NO, window 0x6a00001,
root 0xb8, subw 0x0, time 1982841742, (78,1462), root:(2002,1488),
state 0x0, keycode 26 (keysym 0x65, e), same_screen YES,
XLookupString gives 1 bytes: (65) "e"
XFilterEvent returns: False
More information about the Development
mailing list