[comp.windows.x] Q regarding usage of XRebindKeysm and XLookupString

whm@arizona.edu (Bill Mitchell) (04/13/88)

Here's a question posted for a friend who doesn't quite have access to the
net yet.  Reply to me or the group as may be appropriate and I'll take it
from there.

					Thanks,
					Bill Mitchell
					whm@arizona.edu
					...!{ihnp4,noao,allegra}!arizona!whm
						
--------------
I have in mind a remapping of function keys for a
retargetable user interface.  Namely, I will remap the function
keys for the application based on what function keys the hardware 
provides. X in fact provides a lot of flexibility here.

However if I try to use XRebindKeysym to rebind function
keys with modifiers (as the documentation seems to indicate
is possible) I can never look up these values with XLookupString.  

For example, if I rebind Left function key 1, or L1,  (known to X
as keysym XK_L1) with say modifer XK_Meta_L, specified in the 
modifier list of KeySym-s, I never see the binding for that 
key with the modifier.

Instead, I see the binding for the unmodified L1.  It's almost as
if the modifier is being ignored...

I went runging around in XKeyBind.c and couldn't really find the
problem.  I am pretty sure I have the arguments for modifiers
coded correctly (the list is a list of keysyms which are to be
used as modifiers), but I do not understand the implementation
well enough to be able to fix the problem.

The comments in the code seem to suggest that allowing
XtranslateKey to return a function key modified by Ctrl,
Shift, etc, would be dictating policy.  I hope no-one would
argue that, since the hardware keyboard dictates the key
impulses that get generated, what will be a modifier, and what
not.

dshr@SUN.COM (David Rosenthal) (04/13/88)

> Global, arbitrary binding of strings to keys is still being designed.

I think you are being too optimistic here.  It is far from clear that,
in a multi-lingual environment,  it is even meaningful to
bind strings to keys globally.

It is possible to argue that a group of related clients,  perhaps
all those using an ISO Latin 1 encoding,  would want to use the
same key-to-string bindings.

	David.

jim@EXPO.LCS.MIT.EDU (Jim Fulton) (04/14/88)

> I have in mind a remapping of function keys for a
> retargetable user interface.  [...]

> However if I try to use XRebindKeysym to rebind function
> keys with modifiers (as the documentation seems to indicate
> is possible) I can never look up these values with XLookupString.  

Make sure that this is all happening within the same client.  The XRebindKeysym
call is used within a single process and does not send any information to the
server.  Global, arbitrary binding of strings to keys is still being designed.

If this isn't problem then a small example of code along with a description of
which release of X, the operating system, and the display being used would be
useful. 

Jim Fulton
MIT X Consortium