René J. V. Bertin wrote:

> Evidently one cannot use xev now because it'll involve a focus change. But the

Actually, maybe one can: `xev -id <wid>`

Using that and Qt4:

xev (all ok):
KeyRelease event, serial 22, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126529470, (106,16), root:(680,46),
    state 0x80, keycode 26 (keysym 0xfe51, dead_acute), same_screen YES,
    XLookupString gives 2 bytes: (c2 b4) "´"
    XFilterEvent returns: False

KeyPress event, serial 22, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126529470, (106,16), root:(680,46),
    state 0x80, keycode 26 (keysym 0xfe51, dead_acute), same_screen YES,
    XLookupString gives 2 bytes: (c2 b4) "´"
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: True

KeyRelease event, serial 22, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126529632, (106,16), root:(680,46),
    state 0x80, keycode 26 (keysym 0xfe51, dead_acute), same_screen YES,
    XLookupString gives 2 bytes: (c2 b4) "´"
    XFilterEvent returns: False

KeyRelease event, serial 22, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126529660, (106,16), root:(680,46),
    state 0x80, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 92
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 22, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126529761, (106,16), root:(680,46),
    state 0x0, keycode 26 (keysym 0x65, e), same_screen YES,
    XLookupString gives 1 bytes: (65) "e"
    XFilterEvent returns: False

KeyPress event, serial 22, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126529761, (106,16), root:(680,46),
    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 22, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126529761, (106,16), root:(680,46),
    state 0x0, keycode 0 (keysym 0xe9, eacute), same_screen YES,
    XKeysymToKeycode returns keycode: 11
    XLookupString gives 0 bytes: 
    XmbLookupString gives 2 bytes: (c3 a9) "é"
    XFilterEvent returns: False

KeyRelease event, serial 22, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126529876, (106,16), root:(680,46),
    state 0x0, keycode 26 (keysym 0x65, e), same_screen YES,
    XLookupString gives 1 bytes: (65) "e"
    XFilterEvent returns: False

qev:
QKeyEvent(ShortcutOverride, key=0x1001103)
QKeyEvent(KeyPress, key=0x1001103)
QKeyEvent(KeyRelease, key=0x1001251, modifiers=0x40000000, text="´")
QKeyEvent(KeyRelease, key=0x1001103, modifiers=0x40000000)
QInputMethodEvent(, commit="U+e9")
QKeyEvent(KeyRelease, key=0x45, text="e")


xev (issue triggered):
KeyRelease event, serial 24, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126954309, (114,-8), root:(688,22),
    state 0x0, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 92
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 24, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126954309, (114,-8), root:(688,22),
    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

PropertyNotify event, serial 24, synthetic NO, window 0x5400023,
    atom 0x15f (_NET_WM_USER_TIME), time 126954318, state PropertyNewValue

KeyRelease event, serial 24, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126954399, (114,-8), root:(688,22),
    state 0x80, keycode 26 (keysym 0xfe51, dead_acute), same_screen YES,
    XLookupString gives 2 bytes: (c2 b4) "´"
    XFilterEvent returns: False

KeyPress event, serial 24, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126954399, (114,-8), root:(688,22),
    state 0x80, keycode 26 (keysym 0xfe51, dead_acute), same_screen YES,
    XLookupString gives 2 bytes: (c2 b4) "´"
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: True

PropertyNotify event, serial 24, synthetic NO, window 0x5400023,
    atom 0x15f (_NET_WM_USER_TIME), time 126954408, state PropertyNewValue

KeyRelease event, serial 24, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126954525, (114,-8), root:(688,22),
    state 0x80, keycode 26 (keysym 0xfe51, dead_acute), same_screen YES,
    XLookupString gives 2 bytes: (c2 b4) "´"
    XFilterEvent returns: False

KeyRelease event, serial 24, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126954621, (114,-8), root:(688,22),
    state 0x80, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 92
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 24, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126955120, (114,-8), root:(688,22),
    state 0x0, keycode 26 (keysym 0x65, e), same_screen YES,
    XLookupString gives 1 bytes: (65) "e"
    XFilterEvent returns: False

KeyPress event, serial 24, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126955120, (114,-8), root:(688,22),
    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 24, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126955120, (114,-8), root:(688,22),
    state 0x0, keycode 0 (keysym 0xe9, eacute), same_screen YES,
    XKeysymToKeycode returns keycode: 11
    XLookupString gives 0 bytes: 
    XmbLookupString gives 2 bytes: (c3 a9) "é"
    XFilterEvent returns: False

PropertyNotify event, serial 24, synthetic NO, window 0x5400023,
    atom 0x15f (_NET_WM_USER_TIME), time 126955131, state PropertyNewValue

KeyRelease event, serial 24, synthetic NO, window 0x5400023,
    root 0xf6, subw 0x0, time 126955211, (114,-8), root:(688,22),
    state 0x0, keycode 26 (keysym 0x65, e), same_screen YES,
    XLookupString gives 1 bytes: (65) "e"
    XFilterEvent returns: False

qev:
QKeyEvent(ShortcutOverride, key=0x1001103)
QKeyEvent(KeyPress, key=0x1001103)
QKeyEvent(ShortcutOverride, key=0x1001251, modifiers=0x40000000, text="´")
QKeyEvent(KeyPress, key=0x1001251, modifiers=0x40000000, text="´")
QKeyEvent(KeyRelease, key=0x1001251, modifiers=0x40000000, text="´")
QKeyEvent(KeyRelease, key=0x1001103, modifiers=0x40000000)
QKeyEvent(ShortcutOverride, key=0x45, text="e")
QKeyEvent(KeyPress, key=0x45, text="e")
QKeyEvent(KeyRelease, key=0x45, text="e")

I don't see any difference in the xev output, but there is a difference in the 
qev output.

Same thing, Qt5 qev only:
OK:
QKeyEvent(ShortcutOverride, Key_AltGr, GroupSwitchModifier) 
QKeyEvent(KeyPress, Key_AltGr, GroupSwitchModifier) 
QKeyEvent(KeyRelease, Key_Dead_Acute, GroupSwitchModifier) 
QKeyEvent(KeyRelease, Key_AltGr) 
QInputMethodEvent(, commit="U+e9") 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QKeyEvent(KeyRelease, Key_E, text="e") 

Issue triggered:
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") 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QKeyEvent(KeyRelease, Key_E, text="e") 

issue repaired (after focus change):
QKeyEvent(ShortcutOverride, Key_AltGr, GroupSwitchModifier) 
QKeyEvent(KeyPress, Key_AltGr, GroupSwitchModifier) 
QKeyEvent(KeyRelease, Key_Dead_Acute, GroupSwitchModifier) 
QKeyEvent(KeyRelease, Key_AltGr) 
QInputMethodEvent(, commit="U+e9") 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QInputMethodQueryEvent(queries=0x1, {}) 
QInputMethodQueryEvent(queries=0x2, {}) 
QKeyEvent(KeyRelease, Key_E, text="e") 


In both Qt4 and Qt5 cases it seems that the difference is an extra 
Key_Dead_Acute keypress before the intended(?) Key_Dead_Actute key RELEASE.
Qt4 seems to interpret that as "insert just an acute accent", wherease Qt5 
discards the accent completely.

So yes, Allan, we're seeing the same issue.

R.

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to