diff options
-rw-r--r-- | st.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -2428,6 +2428,7 @@ tputc(char *c, int len) { | |||
2428 | treset(); | 2428 | treset(); |
2429 | term.esc = 0; | 2429 | term.esc = 0; |
2430 | xresettitle(); | 2430 | xresettitle(); |
2431 | xloadcols(); | ||
2431 | break; | 2432 | break; |
2432 | case '=': /* DECPAM -- Application keypad */ | 2433 | case '=': /* DECPAM -- Application keypad */ |
2433 | term.mode |= MODE_APPKEYPAD; | 2434 | term.mode |= MODE_APPKEYPAD; |
@@ -2589,6 +2590,13 @@ void | |||
2589 | xloadcols(void) { | 2590 | xloadcols(void) { |
2590 | int i, r, g, b; | 2591 | int i, r, g, b; |
2591 | XRenderColor color = { .alpha = 0xffff }; | 2592 | XRenderColor color = { .alpha = 0xffff }; |
2593 | static bool loaded; | ||
2594 | Colour *cp; | ||
2595 | |||
2596 | if(loaded) { | ||
2597 | for (cp = dc.col; cp < dc.col + LEN(dc.col); ++cp) | ||
2598 | XftColorFree(xw.dpy, xw.vis, xw.cmap, cp); | ||
2599 | } | ||
2592 | 2600 | ||
2593 | /* load colors [0-15] colors and [256-LEN(colorname)[ (config.h) */ | 2601 | /* load colors [0-15] colors and [256-LEN(colorname)[ (config.h) */ |
2594 | for(i = 0; i < LEN(colorname); i++) { | 2602 | for(i = 0; i < LEN(colorname); i++) { |
@@ -2621,6 +2629,7 @@ xloadcols(void) { | |||
2621 | die("Could not allocate color %d\n", i); | 2629 | die("Could not allocate color %d\n", i); |
2622 | } | 2630 | } |
2623 | } | 2631 | } |
2632 | loaded = true; | ||
2624 | } | 2633 | } |
2625 | 2634 | ||
2626 | int | 2635 | int |