refering to the deleted window, and we'll get a BadWindow error
in XTread_socket when processing the events. I don't have
an idea how to fix that. gerd, 2001-01-98. */
- XFlush (display);
+ /* 2004-09-10: XSync and UNBLOCK so that possible protocol errors are
+ delivered before uncatch errors. */
+ XSync (display, False);
+ UNBLOCK_INPUT;
+
+ /* GTK queues events in addition to the queue in Xlib. So we
+ UNBLOCK to enter the event loop and get possible errors delivered,
+ and then BLOCK again because x_uncatch_errors requires it. */
+ BLOCK_INPUT;
x_uncatch_errors (display, count);
UNBLOCK_INPUT;
}
secs = x_selection_timeout / 1000;
usecs = (x_selection_timeout % 1000) * 1000;
TRACE2 (" Waiting %d secs, %d usecs", secs, usecs);
- wait_reading_process_input (secs, usecs, property_change_reply, 0);
+ wait_reading_process_output (secs, usecs, 0, 0,
+ property_change_reply, NULL, 0);
if (NILP (XCAR (property_change_reply)))
{
secs = x_selection_timeout / 1000;
usecs = (x_selection_timeout % 1000) * 1000;
TRACE1 (" Start waiting %d secs for SelectionNotify", secs);
- wait_reading_process_input (secs, usecs, reading_selection_reply, 0);
+ wait_reading_process_output (secs, usecs, 0, 0,
+ reading_selection_reply, NULL, 0);
TRACE1 (" Got event = %d", !NILP (XCAR (reading_selection_reply)));
BLOCK_INPUT;