+2008-07-22 Frederic Crozat <fcrozat@mandriva.com>
+
+ * gdk/x11/gdkscreen-x11.c: Don't use RandR 1.2
+ if driver is detected as randr12_compat (ie X driver
+ is not RandR 1.2 compliant). Fixes multihead with
+ such drivers. Bug #543317.
+
2008-07-21 Matthias Clasen <mclasen@redhat.com>
* configure.in: Default to linking against Xinerama again,
XRRScreenResources *resources;
int i;
GArray *monitors;
+ gboolean randr12_compat = FALSE;
if (!display_x11->have_randr12)
return FALSE;
XRROutputInfo *output =
XRRGetOutputInfo (dpy, resources, resources->outputs[i]);
+ /* Non RandR1.2 X driver have output name "default" */
+ randr12_compat |= !g_strcmp0(output->name, "default");
+
if (output->crtc)
{
GdkX11Monitor monitor;
XRRFreeScreenResources (resources);
+ /* non RandR 1.2 X driver doesn't return any usable multihead data */
+ if (randr12_compat)
+ {
+ g_array_free (monitors, TRUE);
+ return FALSE;
+ }
+
screen_x11->n_monitors = monitors->len;
screen_x11->monitors = (GdkX11Monitor *)g_array_free (monitors, FALSE);