This should fix a race happening when RANDR changes quickly, e.g. during
unit testing where tests change monitor configurations rapidly.
if (output_info->crtc)
{
- XRRCrtcInfo *crtc = XRRGetCrtcInfo (x11_screen->xdisplay, resources, output_info->crtc);
+ XRRCrtcInfo *crtc;
int j;
+ gdk_x11_display_error_trap_push (display);
+ crtc = XRRGetCrtcInfo (x11_screen->xdisplay, resources,
+ output_info->crtc);
+ if (gdk_x11_display_error_trap_pop (display))
+ {
+ XRRFreeOutputInfo (output_info);
+ continue;
+ }
+
for (j = 0; j < resources->nmode; j++)
{
XRRModeInfo *xmode = &resources->modes[j];