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:
Adam Jackson 2007-11-26 11:53:08 -05:00
parent c6c284e64b
commit a344920ae8
3 changed files with 26 additions and 0 deletions

View File

@ -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) {

View File

@ -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");

View File

@ -307,6 +307,7 @@ typedef struct
XF86ConfDisplayPtr scrn_display_lst;
XF86OptionPtr scrn_option_lst;
char *scrn_comment;
int scrn_virtualX, scrn_virtualY;
}
XF86ConfScreenRec, *XF86ConfScreenPtr;