Hello,

I propose this small change. It allows to use separate border colors for
floating windows. If needed I will send a screenshot that shows the use of it:
tabbed windows match without a visible border, but the floating windows have
the borders. Perhaps, a separate borderwidth setting could be also useful.

The patch is attached.

-- 
Stanislav
diff -r 7f8c81c4bc9a client.c
--- a/client.c	Tue Jun 19 09:08:15 2007 +0200
+++ b/client.c	Tue Jun 26 13:04:03 2007 +0400
@@ -139,7 +139,10 @@ focus(Client *c) {
 		for(c = stack; c && !isvisible(c); c = c->snext);
 	if(sel && sel != c) {
 		grabbuttons(sel, False);
-		XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
+		if(sel->isfloating)
+		    XSetWindowBorder(dpy, sel->win, dc.norm[ColBorderFloat]);
+		else
+		    XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
 	}
 	if(c) {
 		detachstack(c);
@@ -151,7 +154,10 @@ focus(Client *c) {
 	if(!selscreen)
 		return;
 	if(c) {
-		XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
+		if(c->isfloating)
+		    XSetWindowBorder(dpy, c->win, dc.sel[ColBorderFloat]);
+		else
+		    XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
 		XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
 	}
 	else
diff -r 7f8c81c4bc9a config.arg.h
--- a/config.arg.h	Tue Jun 19 09:08:15 2007 +0200
+++ b/config.arg.h	Tue Jun 26 12:35:36 2007 +0400
@@ -10,6 +10,8 @@
 #define SELBORDERCOLOR		"#8c8"
 #define SELBGCOLOR		"#555"
 #define SELFGCOLOR		"#fff"
+#define FLOATNORMBORDERCOLOR	NORMBORDERCOLOR
+#define FLOATSELBORDERCOLOR	SELBORDERCOLOR
 
 /* tagging */
 #define TAGS \
diff -r 7f8c81c4bc9a config.default.h
--- a/config.default.h	Tue Jun 19 09:08:15 2007 +0200
+++ b/config.default.h	Tue Jun 26 12:35:50 2007 +0400
@@ -10,6 +10,8 @@
 #define SELBORDERCOLOR		"#ff0000"
 #define SELBGCOLOR		"#006699"
 #define SELFGCOLOR		"#ffffff"
+#define FLOATNORMBORDERCOLOR	NORMBORDERCOLOR
+#define FLOATSELBORDERCOLOR	SELBORDERCOLOR
 
 /* tagging */
 #define TAGS \
diff -r 7f8c81c4bc9a dwm.h
--- a/dwm.h	Tue Jun 19 09:08:15 2007 +0200
+++ b/dwm.h	Tue Jun 26 12:30:35 2007 +0400
@@ -37,7 +37,7 @@
 
 enum { BarTop, BarBot, BarOff };			/* bar position */
 enum { CurNormal, CurResize, CurMove, CurLast };	/* cursor */
-enum { ColBorder, ColFG, ColBG, ColLast };		/* color */
+enum { ColBorder, ColFG, ColBG, ColBorderFloat, ColLast };		/* color */
 enum { NetSupported, NetWMName, NetLast };		/* EWMH atoms */
 enum { WMProtocols, WMDelete, WMState, WMLast };	/* default atoms */
 
diff -r 7f8c81c4bc9a main.c
--- a/main.c	Tue Jun 19 09:08:15 2007 +0200
+++ b/main.c	Tue Jun 26 12:30:35 2007 +0400
@@ -174,9 +174,11 @@ setup(void) {
 	dc.norm[ColBorder] = initcolor(NORMBORDERCOLOR);
 	dc.norm[ColBG] = initcolor(NORMBGCOLOR);
 	dc.norm[ColFG] = initcolor(NORMFGCOLOR);
+	dc.norm[ColBorderFloat] = initcolor(FLOATNORMBORDERCOLOR);
 	dc.sel[ColBorder] = initcolor(SELBORDERCOLOR);
 	dc.sel[ColBG] = initcolor(SELBGCOLOR);
 	dc.sel[ColFG] = initcolor(SELFGCOLOR);
+	dc.sel[ColBorderFloat] = initcolor(FLOATSELBORDERCOLOR);
 	initfont(FONT);
 	/* geometry */
 	sx = sy = 0;

Reply via email to