about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--client.c5
-rw-r--r--draw.c20
-rw-r--r--dwm.h2
-rw-r--r--event.c8
-rw-r--r--view.c1
5 files changed, 6 insertions, 30 deletions
diff --git a/client.c b/client.c
index af13797..b122427 100644
--- a/client.c
+++ b/client.c
@@ -90,7 +90,7 @@ focus(Client *c) {
 		sel = c;
 		if(old) {
 			grabbuttons(old, False);
-			drawclient(old);
+			XSetWindowBorder(dpy, old->win, dc.norm[ColBorder]);
 		}
 	}
 	if(c) {
@@ -98,11 +98,12 @@ focus(Client *c) {
 		c->snext = stack;
 		stack = c;
 		grabbuttons(c, True);
-		drawclient(c);
+		XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
 		XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
 	}
 	else
 		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
+	drawstatus();
 }
 
 Client *
diff --git a/draw.c b/draw.c
index 19604f3..fe2951c 100644
--- a/draw.c
+++ b/draw.c
@@ -98,15 +98,6 @@ drawtext(const char *text, unsigned long col[ColLast], Bool filledsquare, Bool e
 /* extern */
 
 void
-drawall(void) {
-	Client *c;
-
-	for(c = clients; c; c = getnext(c->next))
-		drawclient(c);
-	drawstatus();
-}
-
-void
 drawstatus(void) {
 	int i, x;
 
@@ -137,17 +128,6 @@ drawstatus(void) {
 	XSync(dpy, False);
 }
 
-void
-drawclient(Client *c) {
-	if(c == sel && issel) {
-		drawstatus();
-		XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
-		return;
-	}
-	XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
-	XSync(dpy, False);
-}
-
 unsigned long
 getcolor(const char *colstr) {
 	Colormap cmap = DefaultColormap(dpy, screen);
diff --git a/dwm.h b/dwm.h
index 3789373..03f8c1f 100644
--- a/dwm.h
+++ b/dwm.h
@@ -117,9 +117,7 @@ extern void updatetitle(Client *c);		/* update the name of c */
 extern void unmanage(Client *c);		/* destroy c */
 
 /* draw.c */
-extern void drawall(void);			/* draw all visible client titles and the bar */
 extern void drawstatus(void);			/* draw the bar */
-extern void drawclient(Client *c);		/* draw title and set border of c */
 extern unsigned long getcolor(const char *colstr);	/* return color of colstr */
 extern void setfont(const char *fontstr);	/* set the font for DC */
 extern unsigned int textw(const char *text);	/* return the width of text in px*/
diff --git a/event.c b/event.c
index a9d2fbb..a809511 100644
--- a/event.c
+++ b/event.c
@@ -235,7 +235,6 @@ enternotify(XEvent *e) {
 	else if(ev->window == root) {
 		issel = True;
 		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
-		drawall();
 	}
 }
 
@@ -272,10 +271,8 @@ static void
 leavenotify(XEvent *e) {
 	XCrossingEvent *ev = &e->xcrossing;
 
-	if((ev->window == root) && !ev->same_screen) {
+	if((ev->window == root) && !ev->same_screen)
 		issel = False;
-		drawall();
-	}
 }
 
 static void
@@ -329,7 +326,8 @@ propertynotify(XEvent *e) {
 		}
 		if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) {
 			updatetitle(c);
-			drawclient(c);
+			if(c == sel)
+				drawstatus();
 		}
 	}
 }
diff --git a/view.c b/view.c
index 935525f..bc1f4e2 100644
--- a/view.c
+++ b/view.c
@@ -200,7 +200,6 @@ restack(void) {
 			XLowerWindow(dpy, c->win);
 		}
 	}
-	drawall();
 	XSync(dpy, False);
 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
 }