Mercurial > hg > xemacs-beta
comparison src/event-Xt.c @ 1040:5323022ae863
[xemacs-hg @ 2002-10-08 04:50:00 by youngs]
2002-08-20 Ben Sigelman <bhsigelm@cs.brown.edu>
* event-Xt.c (drain_X_queue): loop over while(XEventsQueued()) instead
of while(XtAppPending()&XtIMXEvent). Upon a gdm logout, the xemacs
process did not exit, but looped infinitely here. This fixes that
problem.
author | youngs |
---|---|
date | Tue, 08 Oct 2002 04:50:08 +0000 |
parents | 8401dcd2d43a |
children | 4f4c898836ab |
comparison
equal
deleted
inserted
replaced
1039:a97af4f94589 | 1040:5323022ae863 |
---|---|
3144 } | 3144 } |
3145 | 3145 |
3146 static void | 3146 static void |
3147 drain_X_queue (void) | 3147 drain_X_queue (void) |
3148 { | 3148 { |
3149 Lisp_Object devcons, concons; | |
3150 CONSOLE_LOOP (concons) | |
3151 { | |
3152 struct console *con = XCONSOLE (XCAR (concons)); | |
3153 if (!con->input_enabled) | |
3154 continue; | |
3155 | |
3156 CONSOLE_DEVICE_LOOP (devcons, con) | |
3157 { | |
3158 struct device* d; | |
3159 Display* display; | |
3160 d = XDEVICE (XCAR (devcons)); | |
3161 if (DEVICE_X_P (d) && DEVICE_X_DISPLAY (d)) { | |
3162 display = DEVICE_X_DISPLAY (d); | |
3163 while (XEventsQueued (display, QueuedAfterReading)) | |
3164 XtAppProcessEvent (Xt_app_con, XtIMXEvent); | |
3165 } | |
3166 } | |
3167 } | |
3168 /* | |
3149 while (XtAppPending (Xt_app_con) & XtIMXEvent) | 3169 while (XtAppPending (Xt_app_con) & XtIMXEvent) |
3150 XtAppProcessEvent (Xt_app_con, XtIMXEvent); | 3170 XtAppProcessEvent (Xt_app_con, XtIMXEvent); |
3171 */ | |
3151 } | 3172 } |
3152 | 3173 |
3153 static int | 3174 static int |
3154 emacs_Xt_event_pending_p (int user_p) | 3175 emacs_Xt_event_pending_p (int user_p) |
3155 { | 3176 { |