Provide a Xinerama implementation when DIX version isn't enabled. This
version exposes each crtc as a separate 'screen' and reports the size of
that patch. The extension also sends ConfigureNotify events to the root
window whenever crtcs change so that applications will re-fetch xinerama
information. This actually works for metacity.
CFLAGS is a user variable, extracted from the environment at configure time
and settable by the user at build time. We must not override this variable.
RandR is getting too big to live in one file; split into one file per object
type (crtc, mode, screen), leaving the rest of the code in randr.c.
Code is slowly approaching the point where it will drop-in as a replacement
for the old 1.0 implementation.
These changes clean up minor errors to make it possible to list the
available modes for a monitor using legacy APIs in both the X server DDX and
RandR protocol. Setting modes is untested, so it probably doesn't work.
CVT reduced blanking modes are typically only seen on digital connections to
LCDs, but there are some monitors that report them as supported over the
VGA connector too, which is perfectly legitimate, electrically speaking.
Well, kinda. Strictly we prefer M_T_BUILTIN strongest since those are modes
where the driver has said it absolutely can't do anything else (VBE). Then
we look for user-defined modes, ie, modelines from the config file. Then
we consider modes reported by the monitor via EDID. Finally if nothing has
matched yet we consider the default mode pool.
Within each of the above-mentioned classes, modes with the M_T_PREFERRED bit
take priority over other modes in the same class.
This logic ensures that the timings sent to the monitor exactly match the
timings it reported as supported, which occasionally don't match the numbers
you might get for that mode from CVT or GTF.
This allows the server to guess an appropriate initial virtual size and
resolution. The heuristic is to select the largest driver-reported mode
that matches the monitor's physical aspect ratio. We revalidate this
estimate after mode validation, since we may have filtered away all
modes that would fill that size.
Also, the EDID preferred timing is now marked as M_T_PREFERRED as well.
Always add a mouse driver instance configured to send core events, unless
a core pointer already exists using either the mouse or void drivers. This
handles the laptop case where the config file only specifies, say,
synaptics, which causes the touchpad to work but not the pointing stick.
We don't double-instantiate the mouse driver to avoid the mouse moving twice
as fast, and we skip this logic when the user asked for a void core pointer
since that probably means they want to run with no pointer at all.
Base EDID only lets you specify the maximum dotclock in tens of MHz, which
is too fuzzy for some monitors. 1600x1200@60 is just over 160MHz, but if
the monitor really can't handle any mode at 170MHz, then 160 is more
correct. Fix up the EDID block before the driver can see it in this case,
so we don't spuriously reject modes.
The X gamma is used to set the output ramp of the card. Setting a 2.2 output
gamma going into a 2.2 monitor gives an effective gamma of 4.84, which is
very much not what you want.
broken for any 32 bit X server running on a 64 bit kernel) so #ifdef
them out for now. the PCI rework tree will make all this crap go away,
so I think we can tolerate the extra #ifdef for the next release.
instead of `/bin/sh /etc/init.d/xprint get_xpserverlist`
- allows the initscript to set its own different shell under #!
- allows disabling of XPSERVERLIST by making the script non-executable
* Allow files to be installed by using dist_*_DATA instead of EXTRA_DIST.
Also, use dist_*_SCRIPTS to install scripts.
* Fix minor typos in man pages.