[PATCH] Add a -nocursor option to remove the cursor completely.
Simon Farnsworth
simon.farnsworth at onelan.co.uk
Wed Oct 22 08:27:03 PDT 2008
Add -nocursor and -cursor to disable and enable cursor support in DIX. This is
useful in kiosk applications, where -nocursor lets you use unmodified X11
applications without worrying that they'll enable an ugly cursor on your
screen.
-cursor is the default if no option is specified
---
dix/cursor.c | 29 +++++++++++++++++------------
include/dix.h | 3 +++
os/utils.c | 10 ++++++++++
3 files changed, 30 insertions(+), 12 deletions(-)
diff --git a/dix/cursor.c b/dix/cursor.c
index 0ddf9d7..a5bb388 100644
--- a/dix/cursor.c
+++ b/dix/cursor.c
@@ -75,6 +75,8 @@ static GlyphSharePtr sharedGlyphs = (GlyphSharePtr)NULL;
static CARD32 cursorSerial;
#endif
+Bool enableCursor = TRUE;
+
static void
FreeCursorBits(CursorBitsPtr bits)
{
@@ -138,21 +140,24 @@ FreeCursor(pointer value, XID cid)
static void
CheckForEmptyMask(CursorBitsPtr bits)
{
- unsigned char *msk = bits->mask;
- int n = BitmapBytePad(bits->width) * bits->height;
+ if( enableCursor )
+ {
+ unsigned char *msk = bits->mask;
+ int n = BitmapBytePad(bits->width) * bits->height;
- bits->emptyMask = FALSE;
- while(n--)
- if(*(msk++) != 0) return;
+ bits->emptyMask = FALSE;
+ while(n--)
+ if(*(msk++) != 0) return;
#ifdef ARGB_CURSOR
- if (bits->argb)
- {
- CARD32 *argb = bits->argb;
- int n = bits->width * bits->height;
- while (n--)
- if (*argb++ & 0xff000000) return;
- }
+ if (bits->argb)
+ {
+ CARD32 *argb = bits->argb;
+ int n = bits->width * bits->height;
+ while (n--)
+ if (*argb++ & 0xff000000) return;
+ }
#endif
+ }
bits->emptyMask = TRUE;
}
diff --git a/include/dix.h b/include/dix.h
index 64035fe..131bf86 100644
--- a/include/dix.h
+++ b/include/dix.h
@@ -601,4 +601,7 @@ extern ClientPtr LookupClient(
XID id,
ClientPtr client);
+/* cursor.c */
+extern Bool enableCursor;
+
#endif /* DIX_H */
diff --git a/os/utils.c b/os/utils.c
index f58c763..a545036 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -581,6 +581,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\n");
+ ErrorF("-nocursor disable the cursor\n");
#ifdef COMMANDLINE_CHALLENGED_OPERATING_SYSTEMS
ErrorF("-config file read options from file\n");
#endif
@@ -793,6 +795,14 @@ ProcessCommandLine(int argc, char *argv[])
setrlimit (RLIMIT_CORE, &core_limit);
#endif
}
+ 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)
--
1.5.6.3
More information about the xorg
mailing list