randr: Add Option "Primary" to Monitor sections

This commit is contained in:
Adam Jackson 2009-07-15 14:09:08 -04:00
parent 053bb92145
commit 8fab7f72f2
2 changed files with 22 additions and 3 deletions

View File

@ -1389,6 +1389,10 @@ This option controls whether the video card should drive the sync signal
on the green color pin. Not all cards support this option, and most
monitors do not require it. The default is off.
.TP 7
.BI "Option " "\*qPrimary\*q " \*qbool\*q
This optional entry specifies that the monitor should be treated as the primary
monitor. (RandR 1.2-supporting drivers only)
.TP7
.BI "Option " "\*qPreferredMode\*q " \*qstring\*q
This optional entry specifies a mode to be marked as the preferred initial mode
of the monitor.

View File

@ -439,6 +439,7 @@ typedef enum {
OPTION_IGNORE,
OPTION_ROTATE,
OPTION_PANNING,
OPTION_PRIMARY,
} OutputOpts;
static OptionInfoRec xf86OutputOptions[] = {
@ -455,6 +456,7 @@ static OptionInfoRec xf86OutputOptions[] = {
{OPTION_IGNORE, "Ignore", OPTV_BOOLEAN, {0}, FALSE },
{OPTION_ROTATE, "Rotate", OPTV_STRING, {0}, FALSE },
{OPTION_PANNING, "Panning", OPTV_STRING, {0}, FALSE },
{OPTION_PRIMARY, "Primary", OPTV_BOOLEAN, {0}, FALSE },
{-1, NULL, OPTV_NONE, {0}, FALSE },
};
@ -587,6 +589,7 @@ xf86OutputCreate (ScrnInfoPtr scrn,
xf86OutputPtr output, *outputs;
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
int len;
Bool primary;
if (name)
len = strlen (name) + 1;
@ -632,10 +635,22 @@ xf86OutputCreate (ScrnInfoPtr scrn,
xfree (output);
return NULL;
}
xf86_config->output = outputs;
xf86_config->output[xf86_config->num_output++] = output;
if (xf86GetOptValBool (output->options, OPTION_PRIMARY, &primary) && primary)
{
memmove(xf86_config->output + 1, xf86_config->output,
xf86_config->num_output * sizeof (xf86OutputPtr));
xf86_config->output[0] = output;
}
else
{
xf86_config->output[xf86_config->num_output] = output;
}
xf86_config->num_output++;
return output;
}