guix/gnu/packages/patches/xterm-370-explicit-xcursor.patch
Danny Milosavljevic 32d1f71593
gnu: xterm: Make big cursors work.
* gnu/packages/patches/xterm-370-explicit-xcursor.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/xorg.scm (xterm)[source]: Add it.
[arguments]<#:configure-flags>: Add "-lXcursor".
2022-04-03 13:46:15 +02:00

37 lines
1.2 KiB
Diff

From: Danny Milosavljevic <dannym@scratchpost.org>
Date: Thu, 2 Apr 2022 12:10:00 +0200
Subject: Make xterm use libxcursor directly
Fixes <https://issues.guix.gnu.org/54654>.
This patch makes xterm use libxcursor directly.
Without it, libx11 would try to dlopen("libXcursor.so.1") and fail.
--- xterm-370/misc.c.orig 2022-04-02 11:52:26.225131854 +0200
+++ xterm-370/misc.c 2022-04-02 12:06:13.091482385 +0200
@@ -79,6 +79,9 @@
#ifdef HAVE_LIBXPM
#include <X11/xpm.h>
#endif
+#ifdef HAVE_LIB_XCURSOR
+#include <X11/Xcursor/Xcursor.h>
+#endif
#ifdef HAVE_LANGINFO_CODESET
#include <langinfo.h>
@@ -866,7 +869,14 @@
* 0, 2 a shape, 3 a mask for 2, etc. <X11/cursorfont.h>
* contains defined names for each shape.
*/
- c = XCreateGlyphCursor(dpy,
+ c = XcursorTryShapeCursor(dpy,
+ myFont.fs->fid, /* source_font */
+ myFont.fs->fid, /* mask_font */
+ c_index + 0, /* source_char */
+ c_index + 1, /* mask_char */
+ &foreground,
+ &background);
+ if (c == None) c = XCreateGlyphCursor(dpy,
myFont.fs->fid, /* source_font */
myFont.fs->fid, /* mask_font */
c_index + 0, /* source_char */