>>>>> "C" == Christian Kirsch <ck(a)held.mind.de> writes:
C> No, XEmacs 21.0 does _not_ accept Shift+AltGr as Compose (aka
C> Multi_key).
C> As you can see, the keycode for Mode_Shift as for Multi_key is 113,
C> and this is exactly what is sent to XEmacs (I checked with xmon), and
C> the state is "Shift".
C> Just to see if it changed something, I removed the second definition
C> for Multi_key (on Scroll_Lock). XEmacs didn't accept Shift+AltGr as
C> Multi_key.
...
C> 113 0xff7e (Mode_switch) 0xff20 (Multi_key)
Mode_switch is a modifier key, while Multi_key is not. I think it's
illegal to have such a mixture on one keycode. A key is either a
modifier or it is not.
Also, the code in XEmacs that handles the modifier key assumes it is
the `primary', i.e. sans-modifiers, keysym for that keycode.
(when (x-keysym-on-keyboard-p 'multi-key)
(define-key function-key-map [multi-key] 'compose-map))
Does XEmacs recognize the key as multi-key? Try
C-h C-c Sh-AltGr
Does that get XEmacs to print Sh-multi-key?
If so, try
(define-key function-key-map [(shift multi-key)] 'compose-map)
For 21.0, we might have to live with the restriction that the compose
key has to be the primary keysym for its keycode.
>>>>> "J" == vroonhof <vroonhof(a)math.ethz.ch> writes:
>> No, XEmacs 21.0 does _not_ accept Shift+AltGr as Compose (aka
>> Multi_key).
J> :-( Here (on Solaris, MULE, Motif-XIM) it works.. with exactly the
J> same entry for the Alt Gr key (only the keycode is different of
J> course).
>> As you can see, the keycode for Mode_Shift as for Multi_key is 113,
>> and this is exactly what is sent to XEmacs (I checked with xmon), and
>> the state is "Shift".
J> Here is what xmon gives me under Solaris (note that on KeyRlease it
J> gives Shift | Mod3)
There are a few tricky things here...
Properly speaking, it is Xlib's job to do compose key processing,
transparently to the application (Xlib's `built-in' iso-8859-1 input
method), but in order for this to work:
- X11 has to be X11R6
- One of the internationalized keyboard input functions must be used,
i.e. NOT XLookupString.
XEmacs may use XLookupString, XmImLookupString, or XmbLookupString
to get keyboard input, depending on compile flags and ability to
create an input context. In particular, to get Xlib to do compose
processing on Solaris, use Solaris 2.6, with LANG = de (or some
other iso-8859-1 locale), and an XEmacs built --with-mule
--xim=motif (yes, the XEmacs code that does this can be improved)
Otherwise, XEmacs must do compose key processing itself using x-compose.el.
You can tell whether XEmacs or Xlib is doing compose key processing by
pressing `Compose', waiting a few seconds, and seeing whether the
multi-key -
prompt appears in the echo area.
Martin