small change to drawtext
This commit is contained in:
parent
fc578c57e4
commit
08bcf721b4
7
dwm.c
7
dwm.c
@ -551,7 +551,7 @@ drawsquare(Bool filled, Bool empty, Bool invert, ulong col[ColLast]) {
|
||||
|
||||
void
|
||||
drawtext(const char *text, ulong col[ColLast], Bool invert) {
|
||||
int x, y, w, h;
|
||||
int i, x, y, h;
|
||||
uint len, olen;
|
||||
XRectangle r = { dc.x, dc.y, dc.w, dc.h };
|
||||
char buf[256];
|
||||
@ -563,16 +563,15 @@ drawtext(const char *text, ulong col[ColLast], Bool invert) {
|
||||
olen = strlen(text);
|
||||
len = MIN(olen, sizeof buf);
|
||||
memcpy(buf, text, len);
|
||||
w = 0;
|
||||
h = dc.font.ascent + dc.font.descent;
|
||||
y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent;
|
||||
x = dc.x + (h / 2);
|
||||
/* shorten text if necessary */
|
||||
for(; len && (w = textnw(buf, len)) > dc.w - h; len--);
|
||||
for(; len && (i = textnw(buf, len)) > dc.w - h; len--);
|
||||
if(!len)
|
||||
return;
|
||||
if(len < olen)
|
||||
memcpy(&buf[MAX(0, len - 3)], "...", 3);
|
||||
for(i = len; i >= MAX(0, len - 3); buf[i--] = '.');
|
||||
XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
|
||||
if(dc.font.set)
|
||||
XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);
|
||||
|
Loading…
Reference in New Issue
Block a user