main.c
changeset 328 083f1f3e1e93
parent 326 73efaa15a635
child 329 cea0c98495bc
--- a/main.c	Tue Aug 22 16:50:21 2006 +0200
+++ b/main.c	Tue Aug 22 17:38:59 2006 +0200
@@ -62,25 +62,6 @@
 		XFree(wins);
 }
 
-static int
-winprop(Window w, Atom a, Atom t, long l, unsigned char **prop)
-{
-	int status, format;
-	unsigned long res, extra;
-	Atom real;
-
-	status = XGetWindowProperty(dpy, w, a, 0L, l, False, t, &real, &format,
-			&res, &extra, prop);
-
-	if(status != Success || *prop == 0) {
-		return 0;
-	}
-	if(res == 0) {
-		free((void *) *prop);
-	}
-	return res;
-}
-
 /*
  * Startup Error handler to check if another window manager
  * is already running.
@@ -111,21 +92,20 @@
 int
 getproto(Window w)
 {
-	int protos = 0;
+	int status, format, protos = 0;
 	int i;
-	long res;
-	Atom *protocols;
+	unsigned long extra, res;
+	Atom *protocols, real;
 
-	res = winprop(w, wmatom[WMProtocols], XA_ATOM, 20L,
-			((unsigned char **)&protocols));
-	if(res <= 0) {
+	status = XGetWindowProperty(dpy, w, wmatom[WMProtocols], 0L, 20L,
+			False, XA_ATOM, &real, &format, &res, &extra, (unsigned char **)&protocols);
+	if(status != Success || protocols == 0)
 		return protos;
-	}
 	for(i = 0; i < res; i++) {
 		if(protocols[i] == wmatom[WMDelete])
 			protos |= PROTODELWIN;
 	}
-	free((char *) protocols);
+	free(protocols);
 	return protos;
 }