about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAnselm R Garbe <garbeam@gmail.com>2008-02-13 20:34:17 +0000
committerAnselm R Garbe <garbeam@gmail.com>2008-02-13 20:34:17 +0000
commite8244395e4fb7f0617367187c799b1fbddeac7a2 (patch)
treec187ff0b82a339551c0e92bb987da42de696c549
parent954db46bac481fd3f514f7af50d2af7e73fb9115 (diff)
downloaddwm-e8244395e4fb7f0617367187c799b1fbddeac7a2.tar.gz
urgency hook handling needs also to invert the square if present
-rw-r--r--dwm.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/dwm.c b/dwm.c
index 79a3a33..f992ea9 100644
--- a/dwm.c
+++ b/dwm.c
@@ -145,7 +145,7 @@ void destroynotify(XEvent *e);
 void detach(Client *c);
 void detachstack(Client *c);
 void drawbar(void);
-void drawsquare(Monitor *, Bool filled, Bool empty, unsigned long col[ColLast]);
+void drawsquare(Monitor *, Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]);
 void drawtext(Monitor *, const char *text, unsigned long col[ColLast], Bool invert);
 void *emallocz(unsigned int size);
 void enternotify(XEvent *e);
@@ -570,11 +570,13 @@ drawbar(void) {
 			m->dc.w = textw(m, tags[j]);
 			if(m->seltags[j]) {
 				drawtext(m, tags[j], m->dc.sel, isurgent(i, j));
-				drawsquare(m, sel && sel->tags[j] && sel->monitor == selmonitor, isoccupied(m, j), m->dc.sel);
+				drawsquare(m, sel && sel->tags[j] && sel->monitor == selmonitor,
+						isoccupied(m, j), isurgent(i, j), m->dc.sel);
 			}
 			else {
 				drawtext(m, tags[j], m->dc.norm, isurgent(i, j));
-				drawsquare(m, sel && sel->tags[j] && sel->monitor == selmonitor, isoccupied(m, j), m->dc.norm);
+				drawsquare(m, sel && sel->tags[j] && sel->monitor == selmonitor,
+						isoccupied(m, j), isurgent(i, j), m->dc.norm);
 			}
 			m->dc.x += m->dc.w;
 		}
@@ -592,7 +594,7 @@ drawbar(void) {
 			m->dc.x = x;
 			if(sel && sel->monitor == selmonitor) {
 				drawtext(m, sel->name, m->dc.sel, False);
-				drawsquare(m, False, sel->isfloating, m->dc.sel);
+				drawsquare(m, False, sel->isfloating, False, m->dc.sel);
 			}
 			else
 				drawtext(m, NULL, m->dc.norm, False);
@@ -603,12 +605,12 @@ drawbar(void) {
 }
 
 void
-drawsquare(Monitor *m, Bool filled, Bool empty, unsigned long col[ColLast]) {
+drawsquare(Monitor *m, Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) {
 	int x;
 	XGCValues gcv;
 	XRectangle r = { m->dc.x, m->dc.y, m->dc.w, m->dc.h };
 
-	gcv.foreground = col[ColFG];
+	gcv.foreground = col[invert ? ColBG : ColFG];
 	XChangeGC(dpy, m->dc.gc, GCForeground, &gcv);
 	x = (m->dc.font.ascent + m->dc.font.descent + 2) / 4;
 	r.x = m->dc.x + 1;
@@ -1141,14 +1143,11 @@ monitorat() {
 
 	XQueryPointer(dpy, monitors[selmonitor].root, &win, &win, &x, &y, &i, &i, &mask);
 	for(i = 0; i < mcount; i++) {
-		fprintf(stderr, "checking monitor[%d]: %d %d %d %d\n", i, monitors[i].sx, monitors[i].sy, monitors[i].sw, monitors[i].sh);
 		if((x >= monitors[i].sx && x < monitors[i].sx + monitors[i].sw)
 		&& (y >= monitors[i].sy && y < monitors[i].sy + monitors[i].sh)) {
-			fprintf(stderr, "%d,%d -> %d\n", x, y, i);
 			return i;
 		}
 	}
-	fprintf(stderr, "?,? -> 0\n");
 	return 0;
 }
 
href='#n247'>247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295