evaluating the following results in an X Error on stderr. (Linux
2.0.35, Xfree86 3.3.2, fvwm2).
(progn
(setq f (make-frame))
(delete-frame f)
(mouse-position))
xemacs: X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 40 (X_TranslateCoords)
Resource id in failed request: 0x8002cf
Serial number of failed request: 1455
Current serial number in output stream: 1455
I guess this behaviour somehow depends on the Setup of X and the wm. I
have seen similar errors on Solaris2.6 with CDE. This happens whenever
I quit an ediff session and the control frame is deleted.
This error goes away if you switch to synchronous X communication,
therefore I think that the following is The Right Patch. Please be
advised that I have absolutely *no* knowledge of X programming, so
please review carefully and don't assume that I know what I'm doing...
There is at least one other X error which occurs intermittently and
complains about freeing some private colours or somesuch. I have not
yet been able to reproduce this.
But since this happened in all versions of XEmacs I have ever used and
really looks kind of unprofessional, we should IMHO hunt this a bit
more aggressively. One approach would be to stick an abort() into
x_error_handler() for all beta versions. What do you X-experts (no pun
intended) think?
--- frame-x.c.orig Sat Jun 13 06:28:48 1998
+++ frame-x.c Sat Aug 15 23:47:11 1998
@@ -2371,6 +2371,8 @@
unsigned int keys_and_buttons;
struct frame *f;
+ XSync(display, False);
+
if (XQueryPointer (display, RootWindow (display, DefaultScreen (display)),
&root_window, &child_window, &root_x, &root_y,
&win_x, &win_y, &keys_and_buttons) == False)