Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
some cleanups/fixes inspired by Jukka Salmi's feedback
[dwm.git]
/
draw.c
diff --git
a/draw.c
b/draw.c
index
b8cfffd
..
0c920e5
100644
(file)
--- a/
draw.c
+++ b/
draw.c
@@
-14,6
+14,7
@@
static void
drawborder(void)
{
XPoint points[5];
drawborder(void)
{
XPoint points[5];
+
XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
XSetForeground(dpy, dc.gc, dc.border);
points[0].x = dc.x;
XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
XSetForeground(dpy, dc.gc, dc.border);
points[0].x = dc.x;
@@
-33,6
+34,7
@@
static unsigned int
textnw(char *text, unsigned int len)
{
XRectangle r;
textnw(char *text, unsigned int len)
{
XRectangle r;
+
if(dc.font.set) {
XmbTextExtents(dc.font.set, text, len, NULL, &r);
return r.width;
if(dc.font.set) {
XmbTextExtents(dc.font.set, text, len, NULL, &r);
return r.width;
@@
-44,8
+46,8
@@
static void
drawtext(const char *text, Bool invert, Bool border)
{
int x, y, w, h;
drawtext(const char *text, Bool invert, Bool border)
{
int x, y, w, h;
- unsigned int len;
static char buf[256];
static char buf[256];
+ unsigned int len;
XGCValues gcv;
XRectangle r = { dc.x, dc.y, dc.w, dc.h };
XGCValues gcv;
XRectangle r = { dc.x, dc.y, dc.w, dc.h };
@@
-97,7
+99,7
@@
drawall()
{
Client *c;
{
Client *c;
- for(c = clients; c; c = getnext(c->next))
+ for(c = clients; c; c = getnext(c->next
, tsel
))
drawtitle(c);
drawstatus();
}
drawtitle(c);
drawstatus();
}
@@
-105,7
+107,7
@@
drawall()
void
drawstatus()
{
void
drawstatus()
{
- int i;
+ int i
, x
;
Bool istile = arrange == dotile;
dc.x = dc.y = 0;
Bool istile = arrange == dotile;
dc.x = dc.y = 0;
@@
-121,15
+123,14
@@
drawstatus()
else
drawtext(tags[i], (i != tsel), True);
}
else
drawtext(tags[i], (i != tsel), True);
}
- if(sel) {
- dc.x += dc.w;
- dc.w = textw(sel->name);
- drawtext(sel->name, istile, True);
- }
+ x = dc.x + dc.w;
dc.w = textw(stext);
dc.x = bx + bw - dc.w;
drawtext(stext, !istile, False);
dc.w = textw(stext);
dc.x = bx + bw - dc.w;
drawtext(stext, !istile, False);
-
+ if(sel && ((dc.w = dc.x - x) >= bh)) {
+ dc.x = x;
+ drawtext(sel->name, istile, True);
+ }
XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0);
XSync(dpy, False);
}
XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0);
XSync(dpy, False);
}
@@
-170,8
+171,8
@@
drawtitle(Client *c)
unsigned long
getcolor(const char *colstr)
{
unsigned long
getcolor(const char *colstr)
{
- XColor color;
Colormap cmap = DefaultColormap(dpy, screen);
Colormap cmap = DefaultColormap(dpy, screen);
+ XColor color;
XAllocNamedColor(dpy, cmap, colstr, &color, &color);
return color.pixel;
XAllocNamedColor(dpy, cmap, colstr, &color, &color);
return color.pixel;