all repos — dwm @ 54dc0d542cbc8eada2250fe80d161a272f30ddac

my dwm build

fixed tagmon, re-using detach/detachstack and attach/attachstack
Anselm R Garbe anselm@garbe.us
Tue, 23 Jun 2009 17:34:20 +0100
commit

54dc0d542cbc8eada2250fe80d161a272f30ddac

parent

913333f51840d942bdde891eb2fb3c7f66b83db1

2 files changed, 18 insertions(+), 9 deletions(-)

jump to
M config.mkconfig.mk

@@ -11,8 +11,8 @@ X11INC = /usr/X11R6/include

X11LIB = /usr/X11R6/lib # Xinerama, un-comment if you want it -#XINERAMALIBS = -L${X11LIB} -lXinerama -#XINERAMAFLAGS = -DXINERAMA +XINERAMALIBS = -L${X11LIB} -lXinerama +XINERAMAFLAGS = -DXINERAMA # includes and libs INCS = -I. -I/usr/include -I${X11INC}
M dwm.cdwm.c

@@ -375,14 +375,14 @@ }

void attach(Client *c) { - c->next = selmon->clients; - selmon->clients = c; + c->next = c->mon->clients; + c->mon->clients = c; } void attachstack(Client *c) { - c->snext = selmon->stack; - selmon->stack = c; + c->snext = c->mon->stack; + c->mon->stack = c; } void

@@ -1475,11 +1475,20 @@ #ifdef XINERAMA

void tagmon(const Arg *arg) { unsigned int i; + Client *c; Monitor *m; + if(!(c = selmon->sel)) + return; for(i = 0, m = mons; m; m = m->next, i++) if(i == arg->ui) { - selmon->sel->m = m; + detach(c); + detachstack(c); + c->mon = m; + attach(c); + attachstack(c); + selmon->sel = selmon->stack; + m->sel = c; arrange(); break; }

@@ -1695,7 +1704,7 @@ /* reassign all clients with same screen number */

for(tm = mons; tm; tm = tm->next) if(tm->screen_number == m->screen_number) { m->clients = tm->clients; - m->stack = tm->stack; + m->sel = m->stack = tm->stack; tm->clients = NULL; tm->stack = NULL; for(c = m->clients; c; c = c->next)

@@ -1715,7 +1724,7 @@ }

while(tm->stack) { c = tm->stack->snext; tm->stack->snext = newmons->stack; - newmons->stack = tm->stack; + newmons->sel = newmons->stack = tm->stack; tm->stack = c; } }