#179 Fontforge menu does not accept scim input

open
nobody
5
2011-09-12
2009-05-10
FangQ
No

This is also a long standing problem with scim. As long as I started scim as my input method (either English or Chinese), fontforge (all versions) will stop accepting key-strokes for any dialog that needs input (for example, menu View\Goto). This is repeatable on CentOS 4.x~5.x and Ubuntu 6.10 ~ 9.04. Only when I started fontforge remotely, and display with a local Xserver, I can type with scim.

My desktop language is English. I used scim normally for typing Chinese. Typically I only enable "English/Keyboard" and "Chinese(simplified) Ziranma" as my input engines.

Discussion

  • CourtJester
    CourtJester
    2009-05-11

    I believe this is a problem with fontforge and should be fixed in the latest version of fontforge. The version in Ubuntu 9.04 is 20080429 which is rather old and does not contain the fix. I looked at this problem last December, and this is what I found. Fontforge uses XIM for IM.

    In file gdraw/gxdraw.c around lines 3254 (as of last December). FontForge is discarding ClientMessages generated by the XIM framework. If an input method does not process a keypress, for example because it is not enabled, it can requeue the event as a non filtered event by calling IMForwardEvent. X11 creates a ClientMessage to handle this event. FontForge, for some reason, only processes messages for windows it owns, and discards the rest. Unfortunately the window associated with the ClientMessage is not one that FontForge has any context for so it discards the message. Because it discards the message, X11 never sees it even though it is expecting it, and subsequently the no further processing of keyboard input happens. What should actually happen is that XFilterEvent should be called before any context processing happens so that X11 can process the ClientMessage before FontForge discards it.

    Try a more recent build for fontforge to see if the problem still exists.

    Doug Rintoul.

     
  • Rolf
    Rolf
    2011-09-12

    • assigned_to: suzhe --> nobody