summaryrefslogtreecommitdiffhomepage
path: root/patch
diff options
context:
space:
mode:
authorbakkeby <[email protected]>2020-06-11 19:42:00 +0200
committerbakkeby <[email protected]>2020-06-11 16:44:43 +0200
commit8c4eaccf16b533cefe34b090e970ff66911a2a7b (patch)
tree4ea444a2e180fdf728b4f29b8a912dceedaa7cde /patch
parente355c49833bf3bb11457ae32dbe9696d33e10883 (diff)
downloaddwm-flexipatch-8c4eaccf16b533cefe34b090e970ff66911a2a7b.tar.gz
dwm-flexipatch-8c4eaccf16b533cefe34b090e970ff66911a2a7b.zip
Adding pango patch (ref. #10)
Text from original patch: Using pango markup for status text Use a single font. Removed some code utf8 code from drw. Created for pango 1.44. Older versions might not have getter for font height, ascent + descent can be used instead. All texts are rendered with pango but only status is with markup. Increased stext size (in case a lot of markup is used). MIN/MAX is already defined (didn't redefine them).
Diffstat (limited to 'patch')
-rw-r--r--patch/status2d.c26
-rw-r--r--patch/statuscolors.c4
2 files changed, 30 insertions, 0 deletions
diff --git a/patch/status2d.c b/patch/status2d.c
index 261a572..936b21a 100644
--- a/patch/status2d.c
+++ b/patch/status2d.c
@@ -24,7 +24,11 @@ drawstatusbar(Monitor *m, int bh, char* stext, int stw, int stp)
if (!isCode) {
isCode = 1;
text[i] = '\0';
+ #if PANGO_PATCH
+ w += TEXTWM(text) - lrpad;
+ #else
w += TEXTW(text) - lrpad;
+ #endif // PANGO_PATCH
text[i] = '^';
if (text[++i] == 'f')
w += atoi(text + ++i);
@@ -36,7 +40,11 @@ drawstatusbar(Monitor *m, int bh, char* stext, int stw, int stp)
}
}
if (!isCode)
+ #if PANGO_PATCH
+ w += TEXTWM(text) - lrpad;
+ #else
w += TEXTW(text) - lrpad;
+ #endif // PANGO_PATCH
else
isCode = 0;
text = p;
@@ -57,8 +65,13 @@ drawstatusbar(Monitor *m, int bh, char* stext, int stw, int stp)
isCode = 1;
text[i] = '\0';
+ #if PANGO_PATCH
+ w = TEXTWM(text) - lrpad;
+ drw_text(drw, x, 0, w, bh, 0, text, 0, True);
+ #else
w = TEXTW(text) - lrpad;
drw_text(drw, x, 0, w, bh, 0, text, 0);
+ #endif // PANGO_PATCH
x += w;
@@ -126,8 +139,13 @@ drawstatusbar(Monitor *m, int bh, char* stext, int stw, int stp)
}
if (!isCode) {
+ #if PANGO_PATCH
+ w = TEXTWM(text) - lrpad;
+ drw_text(drw, x, 0, w, bh, 0, text, 0, True);
+ #else
w = TEXTW(text) - lrpad;
drw_text(drw, x, 0, w, bh, 0, text, 0);
+ #endif // PANGO_PATCH
}
drw_setscheme(drw, scheme[SchemeNorm]);
@@ -161,7 +179,11 @@ status2dtextlength(char* stext)
if (!isCode) {
isCode = 1;
text[i] = '\0';
+ #if PANGO_PATCH
+ w += TEXTWM(text) - lrpad;
+ #else
w += TEXTW(text) - lrpad;
+ #endif // PANGO_PATCH
text[i] = '^';
if (text[++i] == 'f')
w += atoi(text + ++i);
@@ -173,7 +195,11 @@ status2dtextlength(char* stext)
}
}
if (!isCode)
+ #if PANGO_PATCH
+ w += TEXTWM(text) - lrpad;
+ #else
w += TEXTW(text) - lrpad;
+ #endif // PANGO_PATCH
else
isCode = 0;
return w;
diff --git a/patch/statuscolors.c b/patch/statuscolors.c
index 2f015ad..ef41735 100644
--- a/patch/statuscolors.c
+++ b/patch/statuscolors.c
@@ -12,7 +12,11 @@ textw_wosc(char *s)
}
ctmp = *ts;
*ts = '\0';
+ #if PANGO_PATCH
+ sw += drw_font_getwidth(drw, tp, True);
+ #else
sw += drw_fontset_getwidth(drw, tp);
+ #endif // PANGO_PATCH
*ts = ctmp;
if (ctmp == '\0')
break;