52 lines
1.3 KiB
Diff
52 lines
1.3 KiB
Diff
From 01e706efbc13194a4a4404e91b93a9638a3c1bea Mon Sep 17 00:00:00 2001
|
|
From: Kipras Melnikovas <kipras@kipras.org>
|
|
Date: Thu, 25 Feb 2021 14:31:26 +0200
|
|
Subject: [PATCH] refactor dynamic-cursor-color patch
|
|
|
|
Signed-off-by: Kipras Melnikovas <kipras@kipras.org>
|
|
---
|
|
x.c | 19 +++++++++++++++++--
|
|
1 file changed, 17 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/x.c b/x.c
|
|
index 120e495..ab66364 100644
|
|
--- a/x.c
|
|
+++ b/x.c
|
|
@@ -1489,6 +1489,7 @@ void
|
|
xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og)
|
|
{
|
|
Color drawcol;
|
|
+ XRenderColor colbg;
|
|
|
|
/* remove the old cursor */
|
|
if (selected(ox, oy))
|
|
@@ -1518,10 +1519,24 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og)
|
|
g.fg = defaultfg;
|
|
g.bg = defaultrcs;
|
|
} else {
|
|
+ /** this is the main part of the dynamic cursor color patch */
|
|
+ g.bg = g.fg;
|
|
g.fg = defaultbg;
|
|
- g.bg = defaultcs;
|
|
}
|
|
- drawcol = dc.col[g.bg];
|
|
+
|
|
+ /**
|
|
+ * and this is the second part of the dynamic cursor color patch.
|
|
+ * it handles the `drawcol` variable
|
|
+ */
|
|
+ if (IS_TRUECOL(g.bg)) {
|
|
+ colbg.alpha = 0xffff;
|
|
+ colbg.red = TRUERED(g.bg);
|
|
+ colbg.green = TRUEGREEN(g.bg);
|
|
+ colbg.blue = TRUEBLUE(g.bg);
|
|
+ XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colbg, &drawcol);
|
|
+ } else {
|
|
+ drawcol = dc.col[g.bg];
|
|
+ }
|
|
}
|
|
|
|
/* draw the new one */
|
|
--
|
|
2.30.1
|
|
|