On Thu, Apr 23, 2009 at 04:15:01PM +0100, Simon Farnsworth wrote: > From: Simon Farnsworth <[email protected]> > > 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. > --- > include/input.h | 4 ++++ > os/utils.c | 12 +++++++++++- > xfixes/cursor.c | 6 ++++-- > 3 files changed, 19 insertions(+), 3 deletions(-) > > diff --git a/include/input.h b/include/input.h > index b3bb5d1..94089b2 100644 > --- a/include/input.h > +++ b/include/input.h > @@ -494,4 +494,8 @@ extern _X_EXPORT void DDXRingBell( > int pitch, > 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 */ > diff --git a/os/utils.c b/os/utils.c > index 78a50b2..00abd63 100644 > --- a/os/utils.c > +++ b/os/utils.c > @@ -482,6 +482,8 @@ void UseMsg(void) > ErrorF("-c turns off key-click\n"); > ErrorF("c # key-click volume (0-100)\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("-dpi int screen resolution in dots per inch\n"); > #ifdef DPMSExtension > @@ -660,7 +662,15 @@ ProcessCommandLine(int argc, char *argv[]) > #endif > 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) > monitorResolution = atoi(argv[i]); > diff --git a/xfixes/cursor.c b/xfixes/cursor.c > index 33ab426..eb83cfe 100644 > --- a/xfixes/cursor.c > +++ b/xfixes/cursor.c > @@ -129,6 +129,8 @@ typedef struct _CursorScreen { > /* The cursor doesn't show up until the first XDefineCursor() */ > static Bool CursorVisible = FALSE; > > +Bool EnableCursor = TRUE; > + > static Bool > CursorDisplayCursor (DeviceIntPtr pDev, > ScreenPtr pScreen, > @@ -144,7 +146,7 @@ CursorDisplayCursor (DeviceIntPtr pDev, > * initial root window setup. Not a great way to do it, I admit. > */ > if (ConnectionInfo) > - CursorVisible = TRUE; > + CursorVisible = EnableCursor; > > if (cs->pCursorHideCounts != NULL || !CursorVisible) { > ret = ((*pScreen->RealizeCursor)(pDev, pScreen, pInvisibleCursor) && > @@ -1052,7 +1054,7 @@ XFixesCursorInit (void) > int i; > > if (party_like_its_1989) > - CursorVisible = TRUE; > + CursorVisible = EnableCursor; > > for (i = 0; i < screenInfo.numScreens; i++) > { > -- > 1.5.4.1
tested, works. Acked-by: Peter Hutterer <[email protected]> Cheers, Peter _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
