Browse Source

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.
master
Roberto E. Vargas Caballero 11 years ago
parent
commit
aaee0e8b28
1 changed files with 9 additions and 0 deletions
  1. +9
    -0
      st.c

+ 9
- 0
st.c View File

@ -2428,6 +2428,7 @@ tputc(char *c, int len) {
treset(); treset();
term.esc = 0; term.esc = 0;
xresettitle(); xresettitle();
xloadcols();
break; break;
case '=': /* DECPAM -- Application keypad */ case '=': /* DECPAM -- Application keypad */
term.mode |= MODE_APPKEYPAD; term.mode |= MODE_APPKEYPAD;
@ -2589,6 +2590,13 @@ void
xloadcols(void) { xloadcols(void) {
int i, r, g, b; int i, r, g, b;
XRenderColor color = { .alpha = 0xffff }; 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) */ /* load colors [0-15] colors and [256-LEN(colorname)[ (config.h) */
for(i = 0; i < LEN(colorname); i++) { for(i = 0; i < LEN(colorname); i++) {
@ -2621,6 +2629,7 @@ xloadcols(void) {
die("Could not allocate color %d\n", i); die("Could not allocate color %d\n", i);
} }
} }
loaded = true;
} }
int int


Loading…
Cancel
Save