Mercurial > hg > xemacs-beta
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); |