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 {