&actual_type, &actual_format, &nitems,
&bytes_remaining, &tmp_data) == Success;
had_errors = x_had_errors_p (dpyinfo->display);
- x_uncatch_errors ();
+ x_uncatch_errors_after_check ();
/* The drag window is probably invalid, so remove our record of
it. */
unsigned long *prev_masks;
specpdl_ref count;
Display *dpy;
+ struct x_display_info *dpyinfo;
if (!x_dnd_toplevels)
/* Probably called inside an IO error handler. */
if (display_alive)
{
- x_catch_errors (dpy);
+ dpyinfo = x_display_info_for_display (dpy);
- for (i = 0; i < n_windows; ++i)
+ if (n_windows)
{
- XSelectInput (dpy, destroy_windows[i], prev_masks[i]);
+ x_ignore_errors_for_next_request (dpyinfo);
+
+ for (i = 0; i < n_windows; ++i)
+ {
+ XSelectInput (dpy, destroy_windows[i], prev_masks[i]);
#ifdef HAVE_XSHAPE
- XShapeSelectInput (dpy, destroy_windows[i], None);
+ XShapeSelectInput (dpy, destroy_windows[i], None);
#endif
- }
+ }
- x_uncatch_errors ();
+ x_stop_ignoring_errors (dpyinfo);
+ }
}
unbind_to (count, Qnil);
}
#endif
- x_catch_errors (dpyinfo->display);
+ x_ignore_errors_for_next_request (dpyinfo);
XSelectInput (dpyinfo->display, toplevels[i],
(attrs.your_event_mask
| StructureNotifyMask
| PropertyChangeMask));
- x_uncatch_errors ();
+ x_stop_ignoring_errors (dpyinfo);
x_dnd_toplevels = tem;
}