Input methods for OpenMotif 2.3.2?

I have a Red Hat Enterprise environment with SCIM setup to input Chinese characters. I can successfully toggle the input method with Ctrl-space and enter Chinese characters in an xterm.

When the focus changes to an XmTextField or XmText widget in the application, Ctrl-space does not do anything.

Does anyone know if SCIM can be used with OpenMotif? Are there other input method options available for internationalized applications?

Thank you!


fredk

fredk's picture

You cannot display two

You cannot display two different fonts simultaneously in an XmText or XmTextField widget.

The Xmtext does not have a pre-defined translation for Ctrl+space. You could alter the widget's translation table (adding your own action) for Ctrl+space which would change the font, but any existing text in the widget would likely turn into jibberish.

You could also register a key press event handler to detect space key presses and check the event state for control mask. However, you would have the same problem with existing text in the widget.

--
Fred K


moorecm

moorecm's picture

I am using a Unicode font,

I am using a Unicode font, which can display both English and Chinese characters. My intention is not to change the font but to "register" SCIM as the input method for the application.

I have these three environment variables set:

export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim

I was under the impression that [all] X applications could use an input method as long as XMODIFIERS was set properly. In the specific case of OpenMotif, do additional steps need to be taken?

I have also been playing with the XmNinputMethod resource without success:

*.inputMethod: SCIM


moorecm

moorecm's picture

I submitted bug 1510 for

I submitted bug 1510 for this, after I verified that it does work on OpenMotif 2.1.32. Somewhere after 2.1.32 input methods are broken in libXm.

EDIT: This is false. I must have made a mistake when testing the above; I have successfully retested it on 2.3.2.


moorecm

moorecm's picture

Update! In order to use

Update! In order to use SCIM with my application I had to: export XMODIFIERS, call XtSetLanguageProc and XSetLocaleModifiers explicitly before the X event loop, and use a fontType of FONT_IS_FONTSET.