xfree86: allow starting with no input devices
Add a server flag (AllowEmptyInput), which will inhibit adding the standard keyboard and mouse drivers, if there are no input devices in the config file.
This commit is contained in:
parent
be291a6d97
commit
ba9f5138fc
|
@ -747,7 +747,8 @@ typedef enum {
|
||||||
FLAG_HANDLE_SPECIAL_KEYS,
|
FLAG_HANDLE_SPECIAL_KEYS,
|
||||||
FLAG_RANDR,
|
FLAG_RANDR,
|
||||||
FLAG_AIGLX,
|
FLAG_AIGLX,
|
||||||
FLAG_IGNORE_ABI
|
FLAG_IGNORE_ABI,
|
||||||
|
FLAG_ALLOW_EMPTY_INPUT,
|
||||||
} FlagValues;
|
} FlagValues;
|
||||||
|
|
||||||
static OptionInfoRec FlagOptions[] = {
|
static OptionInfoRec FlagOptions[] = {
|
||||||
|
@ -819,6 +820,8 @@ static OptionInfoRec FlagOptions[] = {
|
||||||
{0}, FALSE },
|
{0}, FALSE },
|
||||||
{ FLAG_AIGLX, "AIGLX", OPTV_BOOLEAN,
|
{ FLAG_AIGLX, "AIGLX", OPTV_BOOLEAN,
|
||||||
{0}, FALSE },
|
{0}, FALSE },
|
||||||
|
{ FLAG_ALLOW_EMPTY_INPUT, "AllowEmptyInput", OPTV_BOOLEAN,
|
||||||
|
{0}, FALSE },
|
||||||
{ FLAG_IGNORE_ABI, "IgnoreABI", OPTV_BOOLEAN,
|
{ FLAG_IGNORE_ABI, "IgnoreABI", OPTV_BOOLEAN,
|
||||||
{0}, FALSE },
|
{0}, FALSE },
|
||||||
{ -1, NULL, OPTV_NONE,
|
{ -1, NULL, OPTV_NONE,
|
||||||
|
@ -1016,6 +1019,10 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
|
||||||
xf86Info.aiglxFrom = X_CONFIG;
|
xf86Info.aiglxFrom = X_CONFIG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xf86Info.allowEmptyInput = FALSE;
|
||||||
|
if (xf86GetOptValBool(FlagOptions, FLAG_ALLOW_EMPTY_INPUT, &value))
|
||||||
|
xf86Info.allowEmptyInput = TRUE;
|
||||||
|
|
||||||
/* Make sure that timers don't overflow CARD32's after multiplying */
|
/* Make sure that timers don't overflow CARD32's after multiplying */
|
||||||
#define MAX_TIME_IN_MIN (0x7fffffff / MILLI_PER_MIN)
|
#define MAX_TIME_IN_MIN (0x7fffffff / MILLI_PER_MIN)
|
||||||
|
|
||||||
|
@ -1657,8 +1664,6 @@ configLayout(serverLayoutPtr servlayoutp, XF86ConfLayoutPtr conf_layout,
|
||||||
servlayoutp->options = conf_layout->lay_option_lst;
|
servlayoutp->options = conf_layout->lay_option_lst;
|
||||||
from = X_DEFAULT;
|
from = X_DEFAULT;
|
||||||
|
|
||||||
if (!checkCoreInputDevices(servlayoutp, FALSE))
|
|
||||||
return FALSE;
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1717,7 +1722,7 @@ configImpliedLayout(serverLayoutPtr servlayoutp, XF86ConfScreenPtr conf_screen)
|
||||||
indp = xnfalloc(sizeof(IDevRec));
|
indp = xnfalloc(sizeof(IDevRec));
|
||||||
indp->identifier = NULL;
|
indp->identifier = NULL;
|
||||||
servlayoutp->inputs = indp;
|
servlayoutp->inputs = indp;
|
||||||
if (!checkCoreInputDevices(servlayoutp, TRUE))
|
if (!xf86Info.allowEmptyInput && checkCoreInputDevices(servlayoutp, TRUE))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -2303,6 +2308,12 @@ addDefaultModes(MonPtr monitorp)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
checkInput(serverLayoutPtr layout) {
|
||||||
|
if (!xf86Info.allowEmptyInput)
|
||||||
|
checkCoreInputDevices(layout, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* load the config file and fill the global data structure
|
* load the config file and fill the global data structure
|
||||||
*/
|
*/
|
||||||
|
@ -2424,6 +2435,8 @@ xf86HandleConfigFile(Bool autoconfig)
|
||||||
return CONFIG_PARSE_ERROR;
|
return CONFIG_PARSE_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkInput(&xf86ConfigLayout);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handle some command line options that can override some of the
|
* Handle some command line options that can override some of the
|
||||||
* ServerFlags settings.
|
* ServerFlags settings.
|
||||||
|
|
|
@ -133,6 +133,9 @@ typedef struct {
|
||||||
Bool allowClosedown;
|
Bool allowClosedown;
|
||||||
ServerGrabInfoRec server;
|
ServerGrabInfoRec server;
|
||||||
} grabInfo;
|
} grabInfo;
|
||||||
|
|
||||||
|
Bool allowEmptyInput; /* Allow the server to start with no input
|
||||||
|
* devices. */
|
||||||
} xf86InfoRec, *xf86InfoPtr;
|
} xf86InfoRec, *xf86InfoPtr;
|
||||||
|
|
||||||
#ifdef DPMSExtension
|
#ifdef DPMSExtension
|
||||||
|
|
Loading…
Reference in New Issue
Block a user