Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Troubles implementing â,ä,ê,ë from a QPA
Alexander M. J last edited by
I'm making a QPA of my own, I'm currently having troubles implementing the keyboard. I can't seem to get special characters working (eg.: â,ä,ê,ë).
Testing this out with the xcb qpa I can type everything fine even on azerty. However, my QPA works very differently.
The keyevents are fed via a client (JS) connecting to the application, so I am stuck creating my own VKeyboard/PlatformInputContext.
While investigating the xcb qpa I noticed there is a thing called
platforminputcontexts, which I am looking into further now.
When stepping through all the functions I eventually ended up at
There there is a call made via QBus and it disappears, I can't seem to find out what other piece of code listens to this message.
I have also found the place where the actual commit of the composed string happens
qtbase/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp:283 [QIBusPlatformInputContext::commitText]. When i backtrace the steps it took there I see it comes from the event thread so I can not locate the source.
Sadly very little is documented about these things. What is responsible for the composition of the key events?
Could someone show me to some code/file/example where I would be able to see what I am doing wrong with my keyboard?
Hi and welcome to devnet,
To get further information you would have to check ibus directly since its feeding the input data.
Are you doing something similar to VNC ? If so, that backend might also be of interest.
Alexander M. J last edited by Alexander M. J
Hi! I have checked the VNC QPA and they do not support these composed keys.
I am checking ibus directly, I find the call that is made to ProcessKeyEvent, but not who implements this. I find the call that is made after that, when it ends up in the commitText function.
What I can't find is who/what is responsible for it.
Likely related to https://github.com/xkbcommon/libxkbcommon