The header file include/X11/Xutil.h defines a macro IsModifierKey, which does not account for the modifiers ISO_Level5_Shift, ISO_Level5_Latch, and ISO_Level5_Lock.
To fix, it should be enough to replace XK_ISO_Last_Group_Lock by ISO_Level5_Lock in the macro's definition.
Created attachment 49162 [details] [review]
patch to fix Xutil.h
This patch fixes the reported issue.
This bug should be fixed to let all compose-combinations work again for the neo keyboard layout.
Can you please send your patch to xorg-devel for review?
Author: Bodo Graumann <email@example.com>
Date: Mon Oct 10 16:40:52 2011 +0200
libX11: Fixing modifier key range in Xutil.h (Bug #21910)
IsModifierKey, defined in include/X11/Xutil.h, is a macro determining,
which keys are regarded as modifiers. The constants ISO_Level5_Shift,
ISO_Level5_Latch and ISO_Level5_Lock where excluded previously, leaving
some Neo2 modifiers functionless in combination with compose.
This patch adjusts the range to include the correct, full range of
Neo2 Bug 277 <http://wiki.neo-layout.org/ticket/277>
X.Org Bug 21910 <http://bugs.freedesktop.org/show_bug.cgi?id=21910>
Signed-off-by: Bodo Graumann <firstname.lastname@example.org>
Reviewed-by: Daniel Stone <email@example.com>