comparison src/event-Xt.c @ 2699:96036853a107

[xemacs-hg @ 2005-03-29 02:58:56 by aidan] Support X11 keysyms of the form UABCD.
author aidan
date Tue, 29 Mar 2005 02:59:21 +0000
parents 3d8143fc88e1
children a25c824ed558
comparison
equal deleted inserted replaced
2698:d8df26f08486 2699:96036853a107
69 69
70 #ifdef WIN32_ANY 70 #ifdef WIN32_ANY
71 extern int mswindows_is_blocking; 71 extern int mswindows_is_blocking;
72 #endif 72 #endif
73 73
74 EXFUN (Funicode_to_char, 2); /* In unicode.c. */
75
74 /* used in glyphs-x.c */ 76 /* used in glyphs-x.c */
75 void enqueue_focus_event (Widget wants_it, Lisp_Object frame, int in_p); 77 void enqueue_focus_event (Widget wants_it, Lisp_Object frame, int in_p);
76 static void handle_focus_event_1 (struct frame *f, int in_p); 78 static void handle_focus_event_1 (struct frame *f, int in_p);
77 static void handle_focus_event_2 (Window w, struct frame *f, int in_p); 79 static void handle_focus_event_2 (Window w, struct frame *f, int in_p);
78 80
198 #endif /* MULE */ 200 #endif /* MULE */
199 int code = 0; 201 int code = 0;
200 202
201 if ((keysym & 0xff) < 0xa0) 203 if ((keysym & 0xff) < 0xa0)
202 return Qnil; 204 return Qnil;
205
206 /* The spec says keysyms in the range #x01000100 to #x0110FFFF and
207 only those should correspond directly to Unicode code points, in
208 the range #x100-#x10FFFF; actual implementations can have the Latin
209 1 code points do the same thing with keysyms
210 #x010000A0-#x01000100. Oops. */
211
212 if (keysym >= 0x010000A0 && keysym <= 0x0110FFFF)
213 return Funicode_to_char (make_int(keysym & 0xffffff), Qnil);
203 214
204 switch (keysym >> 8) 215 switch (keysym >> 8)
205 { 216 {
206 case 0: /* ASCII + Latin1 */ 217 case 0: /* ASCII + Latin1 */
207 USE_CHARSET (charset, LATIN_ISO8859_1); 218 USE_CHARSET (charset, LATIN_ISO8859_1);