Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
applied Martin Hurton's scan() patch with slight modifications
[dwm.git]
/
dwm.c
diff --git
a/dwm.c
b/dwm.c
index
7d99390
..
265ffb9
100644
(file)
--- a/
dwm.c
+++ b/
dwm.c
@@
-569,23
+569,22
@@
drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) {
void
drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
int i, x, y, h, len, olen;
void
drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
int i, x, y, h, len, olen;
- XRectangle r = { dc.x, dc.y, dc.w, dc.h };
char buf[256];
char buf[256];
+ XRectangle r = { dc.x, dc.y, dc.w, dc.h };
XSetForeground(dpy, dc.gc, col[invert ? ColFG : ColBG]);
XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
if(!text)
return;
olen = strlen(text);
XSetForeground(dpy, dc.gc, col[invert ? ColFG : ColBG]);
XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
if(!text)
return;
olen = strlen(text);
- len = MIN(olen, sizeof buf);
- memcpy(buf, text, len);
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 */
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 && (i = textnw(buf, len)) > dc.w - h; len--);
+ for(
len = MIN(olen, sizeof buf)
; len && (i = textnw(buf, len)) > dc.w - h; len--);
if(!len)
return;
if(!len)
return;
+ memcpy(buf, text, len);
if(len < olen)
for(i = len; i && i > len - 3; buf[--i] = '.');
XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
if(len < olen)
for(i = len; i && i > len - 3; buf[--i] = '.');
XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
@@
-1247,10
+1246,9
@@
run(void) {
void
scan(void) {
unsigned int i, num;
void
scan(void) {
unsigned int i, num;
- Window
*wins, d1, d2
;
+ Window
d1, d2, *wins = NULL
;
XWindowAttributes wa;
XWindowAttributes wa;
- wins = NULL;
if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) {
for(i = 0; i < num; i++) {
if(!XGetWindowAttributes(dpy, wins[i], &wa)
if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) {
for(i = 0; i < num; i++) {
if(!XGetWindowAttributes(dpy, wins[i], &wa)
@@
-1266,9
+1264,9
@@
scan(void) {
&& (wa.map_state == IsViewable || getstate(wins[i]) == IconicState))
manage(wins[i], &wa);
}
&& (wa.map_state == IsViewable || getstate(wins[i]) == IconicState))
manage(wins[i], &wa);
}
+ if(wins)
+ XFree(wins);
}
}
- if(wins)
- XFree(wins);
}
void
}
void
@@
-1640,10
+1638,10
@@
updatewmhints(Client *c) {
void
view(const Arg *arg) {
void
view(const Arg *arg) {
- if(
arg &&
(arg->ui & TAGMASK) == tagset[seltags])
+ if((arg->ui & TAGMASK) == tagset[seltags])
return;
seltags ^= 1; /* toggle sel tagset */
return;
seltags ^= 1; /* toggle sel tagset */
- if(arg
&& (arg->ui & TAGMASK)
)
+ if(arg
->ui & TAGMASK
)
tagset[seltags] = arg->ui & TAGMASK;
clearurgent();
arrange();
tagset[seltags] = arg->ui & TAGMASK;
clearurgent();
arrange();