- application gets normal keyboard event from X server
- application forwards event to IM server
- application unfocuses IM context
- application receives processed event from IM server, that requires a sync
reply.
- xim never sees this event since it has unregistered the filter
when it unfocused the ic. So no sync reply is sent.
- application focuses another IC, and sends events, which the IM server then
ignores since it hasn't gotten the SYNC_REPLY.
However, there is another weird bug: Just pressing and releasing Ctrl on a gedit
window causes it to loop infinitely processing keypresses. I'm not sure what's
going on with that or whether it's related.
As far as I can see, this is what is going on:
- application gets normal keyboard event from X server
- application forwards event to IM server
- application unfocuses IM context
- application receives processed event from IM server, that requires a sync
reply.
- xim never sees this event since it has unregistered the filter
when it unfocused the ic. So no sync reply is sent.
- application focuses another IC, and sends events, which the IM server then
ignores since it hasn't gotten the SYNC_REPLY.
However, there is another weird bug: Just pressing and releasing Ctrl on a gedit
window causes it to loop infinitely processing keypresses. I'm not sure what's
going on with that or whether it's related.