Important: Please read the Qt Code of Conduct -

Troubles implementing â,ä,ê,ë from a QPA

  • 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 qtbase/src/plugins/platforminputcontexts/ibus/qibusinputcontextproxy.h:85 [ProcessKeyEvent]
    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?

  • Lifetime Qt Champion

    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.

  • 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.

  • Lifetime Qt Champion

Log in to reply