about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAnselm R. Garbe <garbeam@wmii.de>2006-07-12 17:50:31 +0200
committerAnselm R. Garbe <garbeam@wmii.de>2006-07-12 17:50:31 +0200
commitb1701adf75297747c52e0c3ed2c314cd10129907 (patch)
tree5afad14f6b53c57b1c063df3ddc434fe138ec5f7
parent2e836ecce1ba0629a6088b739c1092d27fccd72b (diff)
downloaddwm-b1701adf75297747c52e0c3ed2c314cd10129907.tar.gz
new stuff, fixed several issues
-rw-r--r--client.c4
-rw-r--r--config.mk2
-rw-r--r--draw.c1
-rw-r--r--event.c8
-rw-r--r--util.c5
-rw-r--r--wm.c5
6 files changed, 13 insertions, 12 deletions
diff --git a/client.c b/client.c
index e9b83fe..95ec3a6 100644
--- a/client.c
+++ b/client.c
@@ -44,8 +44,8 @@ arrange(void *aux)
 	else
 		cols = rows;
 
-	gw = (sw - 2 * c->border)  / cols;
-	gh = (sh - bh - 2 * c->border) / rows;
+	gw = (sw - 2)  / cols;
+	gh = (sh - bh - 2) / rows;
 
 	for(i = j = 0, c = clients; c; c = c->next) {
 		c->x = i * gw;
diff --git a/config.mk b/config.mk
index 0e5d372..41cb070 100644
--- a/config.mk
+++ b/config.mk
@@ -14,7 +14,7 @@ VERSION = 0.0
 LIBS = -L${PREFIX}/lib -L/usr/lib -lc -lm -L${X11LIB} -lX11
 
 # Linux/BSD
-CFLAGS = -g -Wall -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
+CFLAGS = -g -Wall -O2 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \
 	-DVERSION=\"${VERSION}\"
 LDFLAGS = -g ${LIBS}
 
diff --git a/draw.c b/draw.c
index c148362..68ece01 100644
--- a/draw.c
+++ b/draw.c
@@ -39,6 +39,7 @@ draw(Display *dpy, Brush *b, Bool border, const char *text)
 	XSetForeground(dpy, b->gc, b->bg);
 	XFillRectangles(dpy, b->drawable, b->gc, &r, 1);
 
+	w = 0;
 	if(border)
 		drawborder(dpy, b);
 
diff --git a/event.c b/event.c
index 93007df..37196d1 100644
--- a/event.c
+++ b/event.c
@@ -186,11 +186,11 @@ propertynotify(XEvent *e)
 	if(ev->state == PropertyDelete)
 		return; /* ignore */
 
-	if(ev->atom == wm_atom[WMProtocols]) {
-		c->proto = win_proto(c->win);
-		return;
-	}
 	if((c = getclient(ev->window))) {
+		if(ev->atom == wm_atom[WMProtocols]) {
+			c->proto = win_proto(c->win);
+			return;
+		}
 		switch (ev->atom) {
 			default: break;
 			case XA_WM_TRANSIENT_FOR:
diff --git a/util.c b/util.c
index 9da8f52..3f41b3c 100644
--- a/util.c
+++ b/util.c
@@ -126,13 +126,14 @@ pipe_spawn(char *buf, unsigned int len, Display *dpy, char *argv[])
 		perror(" failed");
 	}
 	else {
-		n = 0;
+		l = n = 0;
 		close(pfd[1]);
-		while(l > n) {
+		while(n < len) {
 			if((l = read(pfd[0], buf + n, len - n)) < 1)
 				break;
 			n += l;
 		}
+		while(l > n);
 		close(pfd[0]);
 		buf[n < len ? n : len - 1] = 0;
 	}
diff --git a/wm.c b/wm.c
index 02b9a68..ed40a8b 100644
--- a/wm.c
+++ b/wm.c
@@ -95,13 +95,12 @@ win_property(Window w, Atom a, Atom t, long l, unsigned char **prop)
 int
 win_proto(Window w)
 {
-	Atom *protocols;
+	unsigned char *protocols;
 	long res;
 	int protos = 0;
 	int i;
 
-	res = win_property(w, wm_atom[WMProtocols], XA_ATOM, 20L,
-			((unsigned char **) &protocols));
+	res = win_property(w, wm_atom[WMProtocols], XA_ATOM, 20L, &protocols);
 	if(res <= 0) {
 		return protos;
 	}