this is fine, given andy's request.
but you certainly won't see any fix until you change emacs_Xt_quit_p.
"John M. Adams" wrote:
Ben Wing <ben(a)666.com> writes:
> John -- if you're interested in doing a bit of coding to fix your problem,
> here's what i wrote to Gunnar about rewriting the quit handling. this should
> probably fix your problem along with it.
>
>
> -- drain_X_queue[] has a bug in it. it should read:
>
>
> while (XEventsQueued (display, QueuedAfterReading))
> XtAppProcessEvent (Xt_app_con, XtIMXEvent);
>
> NOT:
>
> while (XtAppPending (Xt_app_con) & XtIMXEvent)
> XtAppProcessEvent (Xt_app_con, XtIMXEvent);
What I ended up trying, and I do not know whether it is the right idea
or completely wrong, is this. Please forgive me if this is stupid, as
I am new to the sources and have a limited amount of time to work on
this. However, I will keep at it. This code didn't fix anything.
Index: event-Xt.c
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/event-Xt.c,v
retrieving revision 1.41.2.42
diff -u -w -b -r1.41.2.42 event-Xt.c
--- event-Xt.c 2001/03/02 11:42:08 1.41.2.42
+++ event-Xt.c 2001/05/02 15:22:37
@@ -2903,8 +2903,24 @@
static void
drain_X_queue (void)
{
+ Lisp_Object devcons, concons;
+ CONSOLE_LOOP (concons)
+ {
+ struct console *con = XCONSOLE (XCAR (concons));
+ if (!con->input_enabled)
+ continue;
+
+ CONSOLE_DEVICE_LOOP (devcons, con)
+ {
+ Display* display = DEVICE_X_DISPLAY (XDEVICE (XCAR (devcons)));
+ while (XEventsQueued (display, QueuedAfterReading))
+ XtAppProcessEvent (Xt_app_con, XtIMXEvent);
+ }
+ }
+ /*
while (XtAppPending (Xt_app_con) & XtIMXEvent)
XtAppProcessEvent (Xt_app_con, XtIMXEvent);
+ */
}
--
John M. Adams
--
ben
I'm sometimes slow in getting around to reading my mail, so if you
want to reach me faster, call 520-661-6661.
See
http://www.666.com/ben/chronic-pain/ for the hell I've been
through.