Multiple keyboard mapping issues

Peter Hutterer mailinglists at who-t.net
Thu Jan 25 07:42:33 PST 2007


I spent today trying to get multiple keyboards working.
The vanilla xserver segfaults with evdev keyboard devices on the  
first keypress. Can anyone confirm this?

Keyboard mapping is weird. I got it to work with my example  
application, typing in two windows at once.

Evdev keyboards only have 128 keysyms, kbd devices 247.

In theory, a MappingNotify event should inform a client about a  
changed number of keysyms. This is fine. XRefreshKeyboardMapping()  
hoewever doesn't change the min/max_keycode fields in the Display  
struct, nothing else seems to either. As a result, all applications  
get BadValue on the next GetKeyboardMapping request, due to  
max_keycodes being wrong (still on the 255).
Is this a bug in Xlib or where did I go wrong?

There's also a bug in xkbUtils.c:1042 where the memcpy(dst->map- 
 >key_sym_map, ...) overwrites the later used dst->server->explicit,  
leading to another segfault. I can't see the reason why it would  
write over the boundaries, but then its over 15 hours looking at code  
already. If anyone can see the problem, I'd appreciate the hint.

so close. yet so far.

Cheers,
   Peter

--
Multi-Pointer X Server
http://wearables.unisa.edu.au/mpx





More information about the xorg mailing list