tReload colors in reset - st - [fork] customized build of st, the simple termin… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit aaee0e8b28a353c215b6d1c8fc06d20038d7b426 | |
parent 8dde8cde41caa311718d2b990ea3356272ee25ee | |
Author: Roberto E. Vargas Caballero <[email protected]> | |
Date: Sat, 20 Jul 2013 21:52:40 +0200 | |
Reload colors in reset | |
Colors definition can be changed using a OSC sequence, so | |
we have to reload them if we want be sure all the colors | |
are the correct. | |
Could be desirable free the colors allocated due to rgb | |
colors and inverse colors (XftColorAllocValues in xdraws), | |
but it is impossible due we use the same structure for all | |
of them. | |
Diffstat: | |
M st.c | 9 +++++++++ | |
1 file changed, 9 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -2428,6 +2428,7 @@ tputc(char *c, int len) { | |
treset(); | |
term.esc = 0; | |
xresettitle(); | |
+ xloadcols(); | |
break; | |
case '=': /* DECPAM -- Application keypad */ | |
term.mode |= MODE_APPKEYPAD; | |
t@@ -2589,6 +2590,13 @@ void | |
xloadcols(void) { | |
int i, r, g, b; | |
XRenderColor color = { .alpha = 0xffff }; | |
+ static bool loaded; | |
+ Colour *cp; | |
+ | |
+ if(loaded) { | |
+ for (cp = dc.col; cp < dc.col + LEN(dc.col); ++cp) | |
+ XftColorFree(xw.dpy, xw.vis, xw.cmap, cp); | |
+ } | |
/* load colors [0-15] colors and [256-LEN(colorname)[ (config.h) */ | |
for(i = 0; i < LEN(colorname); i++) { | |
t@@ -2621,6 +2629,7 @@ xloadcols(void) { | |
die("Could not allocate color %d\n", i); | |
} | |
} | |
+ loaded = true; | |
} | |
int |