> According to upstream, this code is intended to handle errors in > async operations: gdk_x11_display_error_trap_pop_internal() uses > XNextRequest() to get a sequence number for the next X11 request, and > then _gdk_x11_display_error_event() treats sequence numbers between the > start sequence number recorded when the error trap was pushed, and the > end sequence number recorded when it was popped, as having been handled > elsewhere.
Oh my god that's an absolutely insane way to go about it. I'm not sure X11 sequence numbers are even guaranteed to be in order, or increase. Anyway, the bottom line is this: one must call XSync before calling XSetErrorHandler. If the GTK devs refuse to add that one line change, well, good luck to you all. -- Jamie Zawinski • jwz.org • dnalounge.com