浏览代码

new stuff, fixed several issues

Anselm R. Garbe 19 年之前
父节点
当前提交
b1701adf75
共有 6 个文件被更改,包括 13 次插入12 次删除
  1. 2 2
      client.c
  2. 1 1
      config.mk
  3. 1 0
      draw.c
  4. 4 4
      event.c
  5. 3 2
      util.c
  6. 2 3
      wm.c

+ 2 - 2
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;

+ 1 - 1
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}
 

+ 1 - 0
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);
 

+ 4 - 4
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:

+ 3 - 2
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;
 	}

+ 2 - 3
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;
 	}