comparison view.c @ 446:a2e587651c79

using a global stack for focus recovery on arrange() - seems to work great
author Anselm R. Garbe <arg@10kloc.org>
date Thu, 07 Sep 2006 17:53:40 +0200
parents 548084f8d92e
children 728c9089b079
comparison
equal deleted inserted replaced
445:00584fe34361 446:a2e587651c79
74 resize(c, True, TopLeft); 74 resize(c, True, TopLeft);
75 } 75 }
76 else 76 else
77 ban(c); 77 ban(c);
78 } 78 }
79 if(!sel || !isvisible(sel)) 79 if(!sel || !isvisible(sel)) {
80 focus(getnext(clients)); 80 for(sel = stack; sel && !isvisible(sel); sel = sel->snext);
81 focus(sel);
82 }
81 restack(); 83 restack();
82 } 84 }
83 85
84 void 86 void
85 dotile(Arg *arg) 87 dotile(Arg *arg)
136 i++; 138 i++;
137 } 139 }
138 else 140 else
139 ban(c); 141 ban(c);
140 } 142 }
141 if(!sel || !isvisible(sel)) 143 if(!sel || !isvisible(sel)) {
142 focus(getnext(clients)); 144 for(sel = stack; sel && !isvisible(sel); sel = sel->snext);
145 focus(sel);
146 }
143 restack(); 147 restack();
144 } 148 }
145 149
146 void 150 void
147 focusnext(Arg *arg) 151 focusnext(Arg *arg)
225 } 229 }
226 if(sel->isfloat || arrange == dofloat) { 230 if(sel->isfloat || arrange == dofloat) {
227 XRaiseWindow(dpy, sel->win); 231 XRaiseWindow(dpy, sel->win);
228 XRaiseWindow(dpy, sel->twin); 232 XRaiseWindow(dpy, sel->twin);
229 } 233 }
230 if(arrange != dofloat) 234 if(arrange != dofloat)
231 for(c = nexttiled(clients); c; c = nexttiled(c->next)) { 235 for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
232 XLowerWindow(dpy, c->twin); 236 XLowerWindow(dpy, c->twin);
233 XLowerWindow(dpy, c->win); 237 XLowerWindow(dpy, c->win);
234 } 238 }
235 drawall(); 239 drawall();