APPROVE COMMIT 21.5 RECOMMEND 21.4
This patch enables AltGr under GTK.  Unlike the recent X version, this wasn't
broken because of changes in x.org's IsModifierKey() but rather never worked
at all because the private macro IS_MODIFIER_KEY() didn't know it at all.  The
private macro is necessary because of type differences.
src/ChangeLog addition:
2005-01-20  Malcolm Purvis  <malcolmp(a)xemacs.org>
	* event-gtk.c: Recognise AltGr as a valid modifier.
xemacs-gtk-modifiers source patch:
Diff command:   cvs -q diff -u
Files affected: src/event-gtk.c
Index: src/event-gtk.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/event-gtk.c,v
retrieving revision 1.28
diff -u -r1.28 event-gtk.c
--- src/event-gtk.c	2004/11/04 23:06:25	1.28
+++ src/event-gtk.c	2005/01/19 22:48:37
@@ -97,10 +97,23 @@
 Lisp_Object Qkey_mapping;
 Lisp_Object Qsans_modifiers;
 
+/*
+ * Identify if the keysym is a modifier.  This implementation mirrors x.org's
+ * IsModifierKey(), but for GDK keysyms.
+ */
+#ifdef GDK_ISO_Lock
 #define IS_MODIFIER_KEY(keysym)  \
   ((((keysym) >= GDK_Shift_L) && ((keysym) <= GDK_Hyper_R)) \
+   || (((keysym) >= GDK_ISO_Lock) && \
+       ((keysym) <= GDK_ISO_Last_Group_Lock)) \
    || ((keysym) == GDK_Mode_switch) \
    || ((keysym) == GDK_Num_Lock))
+#else
+#define IS_MODIFIER_KEY(keysym)  \
+  ((((keysym) >= GDK_Shift_L) && ((keysym) <= GDK_Hyper_R)) \
+   || ((keysym) == GDK_Mode_switch) \
+   || ((keysym) == GDK_Num_Lock))
+#endif
 
 #define THIS_IS_GTK
 #include "event-xlike-inc.c"
-- 
	       Malcolm Purvis <malcolmp(a)xemacs.org>
Q: Why did the chicken cross the Mobius strip?
A: To get to the other... uh... err...