GNOME Bugzilla – Bug 523408
Xinerarama code needs to sanitize overlapping monitors
Last modified: 2009-02-26 01:47:18 UTC
This started as https://bugzilla.novell.com/show_bug.cgi?id=343858 Xinerama/RandR don't have a concept of a primary monitor, and leave it up to clients to decide on that policy. Most clients simply use "monitor 0" as the primary monitor. However, when there are overlapping monitors ("cloned display" for laptops), then clients may not get the correct idea of which is the laptop's monitor and which is the external display. In particular, the Intel 915 driver in xorg had a bug where it would report that a laptop had a VGA monitor plugged in when in fact it didn't, *and* it would list that output before the laptop's LCD display in the Xinerama monitors. This woul result in GNOME thinking that you had a primary 1024x768 display, when in fact your shiny laptop does 1440x900. The attached patch is what we have for gtk-2-12 in openSUSE 10.3. It detects the condition of having only two overlapping monitors, and makes GdkScreen think that there is only a single monitor, with the resolution of the largest of the two. This fixes the problem for those laptops. KDE uses a similar patch. This patch doesn't apply to SVN trunk, as there is extra code for RandR there. I'm not sure if this patch has the right policy, either, given Søren's recent work on handling RandR setups.
Created attachment 107637 [details] [review] gtk2-bnc343858-buggy-intel-xinerama.diff