view.c
changeset 429 a31de8605f72
parent 428 16f8f05f960e
child 430 1e8aba00964e
equal deleted inserted replaced
428:16f8f05f960e 429:a31de8605f72
    80 	Client *c;
    80 	Client *c;
    81 
    81 
    82 	maximized = False;
    82 	maximized = False;
    83 
    83 
    84 	w = sw - mw;
    84 	w = sw - mw;
    85 	for(n = 0, c = clients; c; c = c->next)
    85 	for(n = 0, c = clients; c && !c->isfloat; c = c->next)
    86 		if(isvisible(c) && !c->isfloat)
    86 		if(isvisible(c))
    87 			n++;
    87 			n++;
    88 
    88 
    89 	if(n > 1)
    89 	if(n > 1)
    90 		h = (sh - bh) / (n - 1);
    90 		h = (sh - bh) / (n - 1);
    91 	else
    91 	else
   184 resizecol(Arg *arg)
   184 resizecol(Arg *arg)
   185 {
   185 {
   186 	unsigned int n;
   186 	unsigned int n;
   187 	Client *c;
   187 	Client *c;
   188 
   188 
   189 	for(n = 0, c = clients; c; c = c->next)
   189 	for(n = 0, c = clients; c && !c->isfloat; c = c->next)
   190 		if(isvisible(c) && !c->isfloat)
   190 		if(isvisible(c))
   191 			n++;
   191 			n++;
   192 	if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized)
   192 	if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized)
   193 		return;
   193 		return;
   194 
   194 
   195 	if(sel == getnext(clients)) {
   195 	if(sel == getnext(clients)) {
   309 zoom(Arg *arg)
   309 zoom(Arg *arg)
   310 {
   310 {
   311 	unsigned int n;
   311 	unsigned int n;
   312 	Client *c;
   312 	Client *c;
   313 
   313 
   314 	for(n = 0, c = clients; c; c = c->next)
   314 	for(n = 0, c = clients; c && !c->isfloat; c = c->next)
   315 		if(isvisible(c) && !c->isfloat)
   315 		if(isvisible(c))
   316 			n++;
   316 			n++;
   317 	if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized)
   317 	if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized)
   318 		return;
   318 		return;
   319 
   319 
   320 	/* this is somewhat tricky, it asserts to only zoom tiled clients */
   320 	if((c = sel) == getnext(clients))
   321 	for(c = getnext(clients); c && c->isfloat; c = getnext(c->next));
   321 		if(!(c = getnext(c->next)) || c->isfloat)
   322 	if(c) {
   322 			return;
   323 		if(c == sel)
       
   324 			for(c = getnext(c->next); c && c->isfloat; c = getnext(c->next));
       
   325 		else
       
   326 			c = sel;
       
   327 	}
       
   328 	if(!c)
       
   329 		return;
       
   330 	detach(c);
   323 	detach(c);
   331 	c->next = clients;
   324 	c->next = clients;
   332 	clients->prev = c;
   325 	clients->prev = c;
   333 	clients = c;
   326 	clients = c;
   334 	focus(c);
   327 	focus(c);