about summary refs log tree commit diff stats
path: root/src/config/color.c
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2020-01-22 10:01:04 +0100
committerMichael Vetter <jubalh@iodoru.org>2020-01-22 10:01:04 +0100
commit802df37926903eb01e64e2f0ad0b7d6d04a7358c (patch)
treef0c7b1a8a8be3267e87b803008bbee75eee8fcbc /src/config/color.c
parentdac6d088d01e6359aa3c788cac924f062f1ab077 (diff)
downloadprofani-tty-802df37926903eb01e64e2f0ad0b7d6d04a7358c.tar.gz
XEP-0392: get background color from theme
So far we just used -1 (default color). Now we actually check whether
`bkgnd` is set in the theme file and use this if available.

Fix https://github.com/profanity-im/profanity/issues/1255
Diffstat (limited to 'src/config/color.c')
-rw-r--r--src/config/color.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/config/color.c b/src/config/color.c
index 9a646132..cb857792 100644
--- a/src/config/color.c
+++ b/src/config/color.c
@@ -49,6 +49,7 @@
 #endif
 
 #include "config/color.h"
+#include "config/theme.h"
 #include "log.h"
 
 static
@@ -494,13 +495,19 @@ static int _color_pair_cache_get(int fg, int bg)
  * possible given a 256 colors terminal.
  *
  * hash a string into a color that will be used as fg
- * use default color as bg
+ * check for 'bkgnd' in theme file or use default color as bg
  */
 int color_pair_cache_hash_str(const char *str, color_profile profile)
 {
     int fg = color_hash(str, profile);
     int bg = -1;
 
+    char *bkgnd = theme_get_bkgnd();
+    if (bkgnd) {
+        bg = find_col(bkgnd, strlen(bkgnd));
+        free(bkgnd);
+    }
+
     return _color_pair_cache_get(fg, bg);
 }