| 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 |
| |