blob: 16e872e2779a8efc0abf5c0b1138fe1f774d1e3b [file] [log] [blame]
Subject: [PATCH] no default cursor
Revive the Xserver's null-root-cursor option.
---
configure.ac | 7 +++++++
dix/cursor.c | 17 +++++++++++++++++
include/dix-config.h.in | 3 +++
3 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/configure.ac b/configure.ac
index 03beb36..e4d0163 100644
--- a/configure.ac
+++ b/configure.ac
@@ -566,6 +566,9 @@ AC_ARG_ENABLE(install-libxf86config,
[Install libxf86config (default: disabled)]),
[INSTALL_LIBXF86CONFIG=$enableval],
[INSTALL_LIBXF86CONFIG=no])
+AC_ARG_ENABLE(null-root-cursor, AS_HELP_STRING([--enable-null-root-cursor], [Use an empty root cursor (default: use core cursor)]),
+ [NULL_ROOT_CURSOR=$enableval],
+ [NULL_ROOT_CURSOR=no])
AC_ARG_ENABLE(visibility, AC_HELP_STRING([--enable-visibility], [Enable symbol visibility (default: auto)]),
[SYMBOL_VISIBILITY=$enableval],
[SYMBOL_VISIBILITY=auto])
@@ -1239,6 +1242,10 @@ XKB_LIB='$(top_builddir)/xkb/libxkb.la'
XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
+if test "x$NULL_ROOT_CURSOR" = xyes; then
+ AC_DEFINE(NULL_ROOT_CURSOR, 1, [Use an empty root cursor])
+fi
+
PKG_CHECK_MODULES([XDMCP], [xdmcp], [have_libxdmcp="yes"], [have_libxdmcp="no"])
if test "x$have_libxdmcp" = xyes; then
AC_CHECK_LIB(Xdmcp, XdmcpWrap, [have_xdmcpwrap="yes"], [have_xdmcpwrap="no"], [$XDMCP_LIBS])
diff --git a/dix/cursor.c b/dix/cursor.c
index 6bff447..8771abf 100644
--- a/dix/cursor.c
+++ b/dix/cursor.c
@@ -455,10 +455,26 @@ CursorPtr
CreateRootCursor(char *unused1, unsigned int unused2)
{
CursorPtr curs;
+#ifdef NULL_ROOT_CURSOR
+ CursorMetricRec cm;
+#else
FontPtr cursorfont;
int err;
XID fontID;
+#endif
+
+#ifdef NULL_ROOT_CURSOR
+ cm.width = 0;
+ cm.height = 0;
+ cm.xhot = 0;
+ cm.yhot = 0;
+ AllocARGBCursor(NULL, NULL, NULL, &cm, 0, 0, 0, 0, 0, 0,
+ &curs, serverClient, (XID)0);
+
+ if (curs == NullCursor)
+ return NullCursor;
+#else
fontID = FakeClientID(0);
err = OpenFont(serverClient, fontID, FontLoadAll | FontOpenSync,
(unsigned) strlen(defaultCursorFont), defaultCursorFont);
@@ -472,6 +488,7 @@ CreateRootCursor(char *unused1, unsigned int unused2)
if (AllocGlyphCursor(fontID, 0, fontID, 1, 0, 0, 0, ~0, ~0, ~0,
&curs, serverClient, (XID) 0) != Success)
return NullCursor;
+#endif
if (!AddResource(FakeClientID(0), RT_CURSOR, (pointer) curs))
return NullCursor;
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index 3fb6413..d9871d4 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -402,6 +402,9 @@
/* Support HAL for hotplug */
#undef CONFIG_HAL
+/* Use an empty root cursor */
+#undef NULL_ROOT_CURSOR
+
/* Have a monotonic clock from clock_gettime() */
#undef MONOTONIC_CLOCK
--
1.7.7.3