summaryrefslogtreecommitdiff
path: root/src/os_win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/os_win32.c')
-rw-r--r--src/os_win32.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/os_win32.c b/src/os_win32.c
index f06227f10..e6ffcbac9 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -213,6 +213,7 @@ static int g_color_index_bg = 0;
static int g_color_index_fg = 7;
# ifdef FEAT_TERMGUICOLORS
+static int default_console_color_bg = 0x000000; // black
static int default_console_color_fg = 0xc0c0c0; // white
# endif
@@ -7878,6 +7879,13 @@ vtp_init(void)
store_console_fg_rgb = save_console_fg_rgb;
# ifdef FEAT_TERMGUICOLORS
+ if (!USE_WT)
+ {
+ COLORREF bg;
+ bg = (COLORREF)csbi.ColorTable[g_color_index_bg];
+ bg = (GetRValue(bg) << 16) | (GetGValue(bg) << 8) | GetBValue(bg);
+ default_console_color_bg = bg;
+ }
fg = (COLORREF)csbi.ColorTable[g_color_index_fg];
fg = (GetRValue(fg) << 16) | (GetGValue(fg) << 8) | GetBValue(fg);
default_console_color_fg = fg;
@@ -8160,11 +8168,20 @@ get_default_console_color(
ctermbg = -1;
if (id > 0)
syn_id2cterm_bg(id, &ctermfg, &ctermbg);
- cterm_normal_bg_gui_color = guibg =
+ if (!USE_WT)
+ {
+ guibg = ctermbg != -1 ? ctermtoxterm(ctermbg)
+ : default_console_color_bg;
+ cterm_normal_bg_gui_color = guibg;
+ ctermbg = ctermbg < 0 ? 0 : ctermbg;
+ }
+ else
+ {
+ cterm_normal_bg_gui_color = guibg =
ctermbg != -1 ? ctermtoxterm(ctermbg) : INVALCOLOR;
-
- if (ctermbg < 0)
- ctermbg = 0;
+ if (ctermbg < 0)
+ ctermbg = 0;
+ }
}
*cterm_fg = ctermfg;