Use default screen monitor for one of the outputs.
By default, use the screen monitor section for output 0, however, a driver can change which output gets the screen monitor by calling xf86OutputUseScreenMonitor.
This commit is contained in:
parent
00cfd1f765
commit
f4a8e54caf
|
@ -405,10 +405,25 @@ xf86OutputSetMonitor (xf86OutputPtr output)
|
|||
xfree (option_name);
|
||||
output->conf_monitor = xf86findMonitor (monitor,
|
||||
xf86configptr->conf_monitor_lst);
|
||||
/*
|
||||
* Find the monitor section of the screen and use that
|
||||
*/
|
||||
if (!output->conf_monitor && output->use_screen_monitor)
|
||||
output->conf_monitor = xf86findMonitor (output->scrn->monitor->id,
|
||||
xf86configptr->conf_monitor_lst);
|
||||
if (output->conf_monitor)
|
||||
{
|
||||
xf86DrvMsg (output->scrn->scrnIndex, X_INFO,
|
||||
"Output %s using monitor section %s\n",
|
||||
output->name, output->conf_monitor->mon_identifier);
|
||||
xf86ProcessOptions (output->scrn->scrnIndex,
|
||||
output->conf_monitor->mon_option_lst,
|
||||
output->options);
|
||||
}
|
||||
else
|
||||
xf86DrvMsg (output->scrn->scrnIndex, X_INFO,
|
||||
"Output %s has no monitor section\n",
|
||||
output->name);
|
||||
}
|
||||
|
||||
static Bool
|
||||
|
@ -454,7 +469,7 @@ xf86OutputInitialRotation (xf86OutputPtr output)
|
|||
|
||||
xf86OutputPtr
|
||||
xf86OutputCreate (ScrnInfoPtr scrn,
|
||||
const xf86OutputFuncsRec *funcs,
|
||||
const xf86OutputFuncsRec *funcs,
|
||||
const char *name)
|
||||
{
|
||||
xf86OutputPtr output, *outputs;
|
||||
|
@ -477,6 +492,10 @@ xf86OutputCreate (ScrnInfoPtr scrn,
|
|||
strcpy (output->name, name);
|
||||
}
|
||||
output->subpixel_order = SubPixelUnknown;
|
||||
/*
|
||||
* Use the old per-screen monitor section for the first output
|
||||
*/
|
||||
output->use_screen_monitor = (xf86_config->num_output == 0);
|
||||
#ifdef RANDR_12_INTERFACE
|
||||
output->randr_output = NULL;
|
||||
#endif
|
||||
|
@ -527,6 +546,16 @@ xf86OutputRename (xf86OutputPtr output, const char *name)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
xf86OutputUseScreenMonitor (xf86OutputPtr output, Bool use_screen_monitor)
|
||||
{
|
||||
if (use_screen_monitor != output->use_screen_monitor)
|
||||
{
|
||||
output->use_screen_monitor = use_screen_monitor;
|
||||
xf86OutputSetMonitor (output);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
xf86OutputDestroy (xf86OutputPtr output)
|
||||
{
|
||||
|
|
|
@ -479,6 +479,9 @@ struct _xf86Output {
|
|||
/** driver private information */
|
||||
void *driver_private;
|
||||
|
||||
/** Whether to use the old per-screen Monitor config section */
|
||||
Bool use_screen_monitor;
|
||||
|
||||
#ifdef RANDR_12_INTERFACE
|
||||
/**
|
||||
* RandR 1.2 output structure.
|
||||
|
@ -611,9 +614,12 @@ xf86CrtcInUse (xf86CrtcPtr crtc);
|
|||
* Output functions
|
||||
*/
|
||||
xf86OutputPtr
|
||||
xf86OutputCreate (ScrnInfoPtr scrn,
|
||||
const xf86OutputFuncsRec *funcs,
|
||||
const char *name);
|
||||
xf86OutputCreate (ScrnInfoPtr scrn,
|
||||
const xf86OutputFuncsRec *funcs,
|
||||
const char *name);
|
||||
|
||||
void
|
||||
xf86OutputUseScreenMonitor (xf86OutputPtr output, Bool use_screen_monitor);
|
||||
|
||||
Bool
|
||||
xf86OutputRename (xf86OutputPtr output, const char *name);
|
||||
|
|
Loading…
Reference in New Issue
Block a user