Allow Virtual to be specified globally in the Screen section.
The Display subsections are optional, and it's confusing to need to create them just to set a Virtual size.
This commit is contained in:
parent
c6c284e64b
commit
a344920ae8
|
@ -1958,6 +1958,18 @@ configScreen(confScreenPtr screenp, XF86ConfScreenPtr conf_screen, int scrnum,
|
|||
}
|
||||
screenp->displays = xnfalloc((count) * sizeof(DispRec));
|
||||
screenp->numdisplays = count;
|
||||
|
||||
/* Fill in the default Virtual size, if any */
|
||||
if (conf_screen->scrn_virtualX && conf_screen->scrn_virtualY) {
|
||||
for (count = 0, dispptr = conf_screen->scrn_display_lst;
|
||||
dispptr;
|
||||
dispptr = (XF86ConfDisplayPtr)dispptr->list.next, count++) {
|
||||
screenp->displays[count].virtualX = conf_screen->scrn_virtualX;
|
||||
screenp->displays[count].virtualY = conf_screen->scrn_virtualY;
|
||||
}
|
||||
}
|
||||
|
||||
/* Now do the per-Display Virtual sizes */
|
||||
count = 0;
|
||||
dispptr = conf_screen->scrn_display_lst;
|
||||
while(dispptr) {
|
||||
|
|
|
@ -214,6 +214,7 @@ static xf86ConfigSymTabRec ScreenTab[] =
|
|||
{DEFAULTDEPTH, "defaultdepth"},
|
||||
{DEFAULTBPP, "defaultbpp"},
|
||||
{DEFAULTFBBPP, "defaultfbbpp"},
|
||||
{VIRTUAL, "virtual"},
|
||||
{OPTION, "option"},
|
||||
{-1, ""},
|
||||
};
|
||||
|
@ -299,6 +300,14 @@ xf86parseScreenSection (void)
|
|||
}
|
||||
}
|
||||
break;
|
||||
case VIRTUAL:
|
||||
if (xf86getSubToken (&(ptr->scrn_comment)) != NUMBER)
|
||||
Error (VIRTUAL_MSG, NULL);
|
||||
ptr->scrn_virtualX = val.num;
|
||||
if (xf86getSubToken (&(ptr->scrn_comment)) != NUMBER)
|
||||
Error (VIRTUAL_MSG, NULL);
|
||||
ptr->scrn_virtualY = val.num;
|
||||
break;
|
||||
case OPTION:
|
||||
ptr->scrn_option_lst = xf86parseOption(ptr->scrn_option_lst);
|
||||
break;
|
||||
|
@ -364,6 +373,10 @@ xf86printScreenSection (FILE * cf, XF86ConfScreenPtr ptr)
|
|||
{
|
||||
fprintf (cf, "\tVideoAdaptor \"%s\"\n", aptr->al_adaptor_str);
|
||||
}
|
||||
if (ptr->scrn_virtualX && ptr->scrn_virtualY)
|
||||
fprintf (cf, "\tVirtual %d %d\n",
|
||||
ptr->scrn_virtualX,
|
||||
ptr->scrn_virtualY);
|
||||
for (dptr = ptr->scrn_display_lst; dptr; dptr = dptr->list.next)
|
||||
{
|
||||
fprintf (cf, "\tSubSection \"Display\"\n");
|
||||
|
|
|
@ -307,6 +307,7 @@ typedef struct
|
|||
XF86ConfDisplayPtr scrn_display_lst;
|
||||
XF86OptionPtr scrn_option_lst;
|
||||
char *scrn_comment;
|
||||
int scrn_virtualX, scrn_virtualY;
|
||||
}
|
||||
XF86ConfScreenRec, *XF86ConfScreenPtr;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user