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
2 changed files with 27 additions and 13 deletions
|
@ -62,6 +62,14 @@ static unsigned int defaultbg = 0;
|
||||||
static unsigned int defaultcs = 256;
|
static unsigned int defaultcs = 256;
|
||||||
static unsigned int defaultucs = 257;
|
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. */
|
/* Internal shortcuts. */
|
||||||
#define MODKEY Mod1Mask
|
#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;
|
FcPattern *fcpattern, *fontpattern;
|
||||||
FcFontSet *fcsets[] = { NULL };
|
FcFontSet *fcsets[] = { NULL };
|
||||||
FcCharSet *fccharset;
|
FcCharSet *fccharset;
|
||||||
Colour *fg = &dc.col[base.fg], *bg = &dc.col[base.bg],
|
Colour *fg, *bg, *temp, revfg, revbg;
|
||||||
*temp, revfg, revbg;
|
|
||||||
XRenderColor colfg, colbg;
|
XRenderColor colfg, colbg;
|
||||||
|
|
||||||
frcflags = FRC_NORMAL;
|
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(base.mode & ATTR_BOLD) {
|
||||||
if(BETWEEN(base.fg, 0, 7)) {
|
if(BETWEEN(base.fg, 0, 7)) {
|
||||||
/* basic system colors */
|
/* basic system colors */
|
||||||
|
@ -2738,15 +2754,6 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
|
||||||
frcflags = FRC_BOLD;
|
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(IS_SET(MODE_REVERSE)) {
|
||||||
if(fg == &dc.col[defaultfg]) {
|
if(fg == &dc.col[defaultfg]) {
|
||||||
fg = &dc.col[defaultbg];
|
fg = &dc.col[defaultbg];
|
||||||
|
@ -2873,8 +2880,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
|
||||||
FcTrue, fcpattern, &fcres);
|
FcTrue, fcpattern, &fcres);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Overwrite or create the new cache entry
|
* Overwrite or create the new cache entry.
|
||||||
* entry.
|
|
||||||
*/
|
*/
|
||||||
frccur++;
|
frccur++;
|
||||||
frclen++;
|
frclen++;
|
||||||
|
|
Loading…
Reference in a new issue