Make the cursor completely optional
For embedded use, it's convenient to be able to disable the cursor completely, without having to audit and fix up all your third-party code (e.g. Mozilla Firefox). Add -nocursor and -cursor server options to enable and disable the cursor. The default is still -cursor, but embedded users can run the server with -nocursor to hide the cursor regardless of what application developers do. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
40a8f2f408
commit
707af5f8c5
|
@ -498,4 +498,8 @@ extern _X_EXPORT void DDXRingBell(
|
||||||
int pitch,
|
int pitch,
|
||||||
int duration);
|
int duration);
|
||||||
|
|
||||||
|
/* Set to TRUE by default - os/utils.c sets it to FALSE on user request,
|
||||||
|
xfixes/cursor.c uses it to determine if the cursor is enabled */
|
||||||
|
extern Bool EnableCursor;
|
||||||
|
|
||||||
#endif /* INPUT_H */
|
#endif /* INPUT_H */
|
||||||
|
|
12
os/utils.c
12
os/utils.c
|
@ -482,6 +482,8 @@ void UseMsg(void)
|
||||||
ErrorF("-c turns off key-click\n");
|
ErrorF("-c turns off key-click\n");
|
||||||
ErrorF("c # key-click volume (0-100)\n");
|
ErrorF("c # key-click volume (0-100)\n");
|
||||||
ErrorF("-cc int default color visual class\n");
|
ErrorF("-cc int default color visual class\n");
|
||||||
|
ErrorF("-cursor enable the cursor (default)\n");
|
||||||
|
ErrorF("-nocursor disable the cursor\n");
|
||||||
ErrorF("-core generate core dump on fatal error\n");
|
ErrorF("-core generate core dump on fatal error\n");
|
||||||
ErrorF("-dpi int screen resolution in dots per inch\n");
|
ErrorF("-dpi int screen resolution in dots per inch\n");
|
||||||
#ifdef DPMSExtension
|
#ifdef DPMSExtension
|
||||||
|
@ -660,7 +662,15 @@ ProcessCommandLine(int argc, char *argv[])
|
||||||
#endif
|
#endif
|
||||||
CoreDump = TRUE;
|
CoreDump = TRUE;
|
||||||
}
|
}
|
||||||
else if ( strcmp( argv[i], "-dpi") == 0)
|
else if ( strcmp( argv[i], "-nocursor") == 0)
|
||||||
|
{
|
||||||
|
EnableCursor = FALSE;
|
||||||
|
}
|
||||||
|
else if ( strcmp( argv[i], "-cursor") == 0)
|
||||||
|
{
|
||||||
|
EnableCursor = TRUE;
|
||||||
|
}
|
||||||
|
else if ( strcmp( argv[i], "-dpi") == 0)
|
||||||
{
|
{
|
||||||
if(++i < argc)
|
if(++i < argc)
|
||||||
monitorResolution = atoi(argv[i]);
|
monitorResolution = atoi(argv[i]);
|
||||||
|
|
|
@ -129,6 +129,8 @@ typedef struct _CursorScreen {
|
||||||
/* The cursor doesn't show up until the first XDefineCursor() */
|
/* The cursor doesn't show up until the first XDefineCursor() */
|
||||||
static Bool CursorVisible = FALSE;
|
static Bool CursorVisible = FALSE;
|
||||||
|
|
||||||
|
Bool EnableCursor = TRUE;
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
CursorDisplayCursor (DeviceIntPtr pDev,
|
CursorDisplayCursor (DeviceIntPtr pDev,
|
||||||
ScreenPtr pScreen,
|
ScreenPtr pScreen,
|
||||||
|
@ -144,7 +146,7 @@ CursorDisplayCursor (DeviceIntPtr pDev,
|
||||||
* initial root window setup. Not a great way to do it, I admit.
|
* initial root window setup. Not a great way to do it, I admit.
|
||||||
*/
|
*/
|
||||||
if (ConnectionInfo)
|
if (ConnectionInfo)
|
||||||
CursorVisible = TRUE;
|
CursorVisible = EnableCursor;
|
||||||
|
|
||||||
if (cs->pCursorHideCounts != NULL || !CursorVisible) {
|
if (cs->pCursorHideCounts != NULL || !CursorVisible) {
|
||||||
ret = ((*pScreen->RealizeCursor)(pDev, pScreen, pInvisibleCursor) &&
|
ret = ((*pScreen->RealizeCursor)(pDev, pScreen, pInvisibleCursor) &&
|
||||||
|
@ -1052,7 +1054,7 @@ XFixesCursorInit (void)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (party_like_its_1989)
|
if (party_like_its_1989)
|
||||||
CursorVisible = TRUE;
|
CursorVisible = EnableCursor;
|
||||||
|
|
||||||
for (i = 0; i < screenInfo.numScreens; i++)
|
for (i = 0; i < screenInfo.numScreens; i++)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue