This allows BGE to receive CJK characters from input method via KeyboardSensor with "All Keys" option. Currently, this works only on Linux (X11). For Windows and OSX, OS dependent part (GHOST) still needs input method support.
Technical notes:
- Some new constants to indicate an input method event are defined:
- GHOST_kKeyInputMethod (GHOST)
- INPUTMETHOD (windowmanager)
- KX_INPUTMETHOD (gameengine)
- Input method throws only keypress event, never throws keyrelease event, so NextFrame() changes the event status from KX_JUSTACTIVATED to KX_NO_INPUTSTATUS immediately after the keypress event is consumed.
- The unicode characters from input method are stored in m_IMUnicodeBuf rather than m_eventStatusTables before sending them to KeyboardSensor, because the input method can send multiple characters in one event loop.