sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

dwm-float_border_color-6.0.diff (3356B)


      1 URL: http://dwm.suckless.org/patches/historical/float_border_color
      2 float_border_color2 allows you to specify a different border color for floating
      3 windows.
      4 
      5 diff -r ec4baab78314 config.def.h
      6 --- a/config.def.h	Mon Dec 19 15:38:30 2011 +0100
      7 +++ b/config.def.h	Fri Apr 06 08:23:26 2012 +0200
      8 @@ -8,6 +8,8 @@
      9  static const char selbordercolor[]  = "#005577";
     10  static const char selbgcolor[]      = "#005577";
     11  static const char selfgcolor[]      = "#eeeeee";
     12 +static const char floatnormbordercolor[] = "#005577";
     13 +static const char floatselbordercolor[]  = "#005577";
     14  static const unsigned int borderpx  = 1;        /* border pixel of windows */
     15  static const unsigned int snap      = 32;       /* snap pixel */
     16  static const Bool showbar           = True;     /* False means no bar */
     17 diff -r ec4baab78314 dwm.c
     18 --- a/dwm.c	Mon Dec 19 15:38:30 2011 +0100
     19 +++ b/dwm.c	Fri Apr 06 08:23:26 2012 +0200
     20 @@ -57,7 +57,7 @@
     21  
     22  /* enums */
     23  enum { CurNormal, CurResize, CurMove, CurLast };        /* cursor */
     24 -enum { ColBorder, ColFG, ColBG, ColLast };              /* color */
     25 +enum { ColBorder, ColFG, ColBG, ColBorderFloat, ColLast };              /* color */
     26  enum { NetSupported, NetWMName, NetWMState,
     27         NetWMFullscreen, NetActiveWindow, NetWMWindowType,
     28         NetWMWindowTypeDialog, NetLast };     /* EWMH atoms */
     29 @@ -855,7 +855,10 @@
     30  		detachstack(c);
     31  		attachstack(c);
     32  		grabbuttons(c, True);
     33 -		XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
     34 +		if(c->isfloating)
     35 +			XSetWindowBorder(dpy, c->win, dc.sel[ColBorderFloat]);
     36 +		else
     37 +			XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
     38  		setfocus(c);
     39  	}
     40  	else
     41 @@ -1155,6 +1158,8 @@
     42  		c->isfloating = c->oldstate = trans != None || c->isfixed;
     43  	if(c->isfloating)
     44  		XRaiseWindow(dpy, c->win);
     45 +	if(c->isfloating)
     46 +		XSetWindowBorder(dpy, w, dc.norm[ColBorderFloat]);
     47  	attach(c);
     48  	attachstack(c);
     49  	XMoveResizeWindow(dpy, c->win, c->x + 2 * sw, c->y, c->w, c->h); /* some windows require this */
     50 @@ -1615,9 +1620,11 @@
     51  	dc.norm[ColBorder] = getcolor(normbordercolor);
     52  	dc.norm[ColBG] = getcolor(normbgcolor);
     53  	dc.norm[ColFG] = getcolor(normfgcolor);
     54 +	dc.norm[ColBorderFloat] = getcolor(floatnormbordercolor);
     55  	dc.sel[ColBorder] = getcolor(selbordercolor);
     56  	dc.sel[ColBG] = getcolor(selbgcolor);
     57  	dc.sel[ColFG] = getcolor(selfgcolor);
     58 +	dc.sel[ColBorderFloat] = getcolor(floatselbordercolor);
     59  	dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen));
     60  	dc.gc = XCreateGC(dpy, root, 0, NULL);
     61  	XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
     62 @@ -1741,6 +1748,10 @@
     63  		return;
     64  	selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed;
     65  	if(selmon->sel->isfloating)
     66 +		XSetWindowBorder(dpy, selmon->sel->win, dc.sel[ColBorderFloat]);
     67 +	else
     68 +		XSetWindowBorder(dpy, selmon->sel->win, dc.sel[ColBorder]);
     69 +	if(selmon->sel->isfloating)
     70  		resize(selmon->sel, selmon->sel->x, selmon->sel->y,
     71  		       selmon->sel->w, selmon->sel->h, False);
     72  	arrange(selmon);
     73 @@ -1776,7 +1787,10 @@
     74  	if(!c)
     75  		return;
     76  	grabbuttons(c, False);
     77 -	XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
     78 +	if(c->isfloating)
     79 +		XSetWindowBorder(dpy, c->win, dc.norm[ColBorderFloat]);
     80 +	else
     81 +		XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
     82  	if(setfocus)
     83  		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
     84  }