Add the possibility to have default highlight colors.
Thanks to stargrave@stargrave.org for the suggestion!
This commit is contained in:
		
							parent
							
								
									adde5c6d9d
								
							
						
					
					
						commit
						7e7760c2ed
					
				|  | @ -62,6 +62,14 @@ static unsigned int defaultbg = 0; | |||
| static unsigned int defaultcs = 256; | ||||
| static unsigned int defaultucs = 257; | ||||
| 
 | ||||
| /*
 | ||||
|  * Colors used, when the specific fg == defaultfg. So in reverse mode this | ||||
|  * will reverse too. Another logic would only make the simple feature too | ||||
|  * complex. | ||||
|  */ | ||||
| static unsigned int defaultitalic = 11; | ||||
| static unsigned int defaultunderline = 7; | ||||
| 
 | ||||
| /* Internal shortcuts. */ | ||||
| #define MODKEY Mod1Mask | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										32
									
								
								st.c
								
								
								
								
							
							
						
						
									
										32
									
								
								st.c
								
								
								
								
							|  | @ -2711,12 +2711,28 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | |||
| 	FcPattern *fcpattern, *fontpattern; | ||||
| 	FcFontSet *fcsets[] = { NULL }; | ||||
| 	FcCharSet *fccharset; | ||||
| 	Colour *fg = &dc.col[base.fg], *bg = &dc.col[base.bg], | ||||
| 		 *temp, revfg, revbg; | ||||
| 	Colour *fg, *bg, *temp, revfg, revbg; | ||||
| 	XRenderColor colfg, colbg; | ||||
| 
 | ||||
| 	frcflags = FRC_NORMAL; | ||||
| 
 | ||||
| 	if(base.mode & ATTR_ITALIC) { | ||||
| 		if(base.fg == defaultfg) | ||||
| 			base.fg = defaultitalic; | ||||
| 		font = &dc.ifont; | ||||
| 		frcflags = FRC_ITALIC; | ||||
| 	} else if((base.mode & ATTR_ITALIC) && (base.mode & ATTR_BOLD)) { | ||||
| 		if(base.fg == defaultfg) | ||||
| 			base.fg = defaultitalic; | ||||
| 		font = &dc.ibfont; | ||||
| 		frcflags = FRC_ITALICBOLD; | ||||
| 	} else if(base.mode & ATTR_UNDERLINE) { | ||||
| 		if(base.fg == defaultfg) | ||||
| 			base.fg = defaultunderline; | ||||
| 	} | ||||
| 	fg = &dc.col[base.fg]; | ||||
| 	bg = &dc.col[base.bg]; | ||||
| 
 | ||||
| 	if(base.mode & ATTR_BOLD) { | ||||
| 		if(BETWEEN(base.fg, 0, 7)) { | ||||
| 			/* basic system colors */ | ||||
|  | @ -2738,15 +2754,6 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | |||
| 		frcflags = FRC_BOLD; | ||||
| 	} | ||||
| 
 | ||||
| 	if(base.mode & ATTR_ITALIC) { | ||||
| 		font = &dc.ifont; | ||||
| 		frcflags = FRC_ITALIC; | ||||
| 	} | ||||
| 	if((base.mode & ATTR_ITALIC) && (base.mode & ATTR_BOLD)) { | ||||
| 		font = &dc.ibfont; | ||||
| 		frcflags = FRC_ITALICBOLD; | ||||
| 	} | ||||
| 
 | ||||
| 	if(IS_SET(MODE_REVERSE)) { | ||||
| 		if(fg == &dc.col[defaultfg]) { | ||||
| 			fg = &dc.col[defaultbg]; | ||||
|  | @ -2873,8 +2880,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | |||
| 					FcTrue, fcpattern, &fcres); | ||||
| 
 | ||||
| 			/*
 | ||||
| 			 * Overwrite or create the new cache entry | ||||
| 			 * entry. | ||||
| 			 * Overwrite or create the new cache entry. | ||||
| 			 */ | ||||
| 			frccur++; | ||||
| 			frclen++; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue