Rodney Sparapani wrote:
 >>  > X Error of failed request:  BadWindow (invalid Window
parameter)
 >>
 >> What's your window manager?  I think this has to do with window
 >> manager reparenting, but I don't exactly know what is going on.
 >>
 >>
 >>
 >>   
 > The window manager is the Java Desktop System.  Basically, it's Sun's
 > distribution of GNOME AFAICT.
 > 
 > RODNEY
 
 It just happened again, but this time, it didn't die.  The first error
 message is the same, the second is different:
 
 X Error of failed request:  BadWindow (invalid Window parameter)
    Major opcode of failed request:  18 (X_ChangeProperty)
    Resource id in failed request:  0x681655
    Serial number of failed request:  6539403
    Current serial number in output stream:  6539405
 X Error of failed request:  BadWindow (invalid Window parameter)
    Major opcode of failed request:  25 (X_SendEvent)
    Resource id in failed request:  0x681655
    Serial number of failed request:  6539404
    Current serial number in output stream:  6539405 
A BadWindow error for XChangeProperty() followed by one for
XSendEvent(), with consecutive serial numbers and identical window
IDs.
That *has* to be this code in x_reply_selection_request() in
select-x.c:
      XChangeProperty (display, window, reply.property, type, format,
		       PropModeReplace, data, size);
      /* At this point, the selection was successfully stored; ack it. */
      XSendEvent (display, window, False, 0L, (XEvent *) &reply);
However, the "window" variable is taken from the "requestor" field of
a SelectionRequest event.
IOW, an external program sends XEmacs a SelectionRequest event with a
bogus window ID, and Xlib complains when XEmacs tries to reply to the
(non-existent) requestor.
This has to be a bug in an external program, and there are limits to
what XEmacs can do about it.
I don't think that it can prevent Xlib from throwing the error. AFAIK,
there isn't any way to test whether a particular XID is valid (other
than trying to use it and seeing if an error occurs).
It's possible that there are bugs in the handling of X errors. At
least one such bug was fixed in the 21.4 series (the error handler was
calling into lisp which called into Xlib, which isn't allowed).
-- 
Glynn Clements <glynn(a)gclements.plus.com>
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta