tile.c
changeset 946 b938876de936
parent 943 d0b93818f723
child 947 970931b7dd30
equal deleted inserted replaced
945:89ea2acd2646 946:b938876de936
    10 
    10 
    11 void
    11 void
    12 addtomwfact(const char *arg) {
    12 addtomwfact(const char *arg) {
    13 	double delta;
    13 	double delta;
    14 
    14 
    15 	if(lt->arrange != tile)
    15 	if(isarrange(tile))
    16 		return;
    16 		return;
    17 
    17 
    18 	/* arg handling, manipulate mwfact */
    18 	/* arg handling, manipulate mwfact */
    19 	if(arg && (1 == sscanf(arg, "%lf", &delta))) {
    19 	if(arg && (1 == sscanf(arg, "%lf", &delta))) {
    20 		if(delta + mwfact > 0.1 && delta + mwfact < 0.9)
    20 		if(delta + mwfact > 0.1 && delta + mwfact < 0.9)
    21 			mwfact += delta;
    21 			mwfact += delta;
    22 	}
    22 	}
    23 	lt->arrange();
    23 	arrange();
    24 }
    24 }
    25 
    25 
    26 void
    26 void
    27 tile(void) {
    27 tile(void) {
    28 	unsigned int i, n, nx, ny, nw, nh, mw, th;
    28 	unsigned int i, n, nx, ny, nw, nh, mw, th;
    39 
    39 
    40 	nx = wax;
    40 	nx = wax;
    41 	ny = way;
    41 	ny = way;
    42 	for(i = 0, c = clients; c; c = c->next)
    42 	for(i = 0, c = clients; c; c = c->next)
    43 		if(isvisible(c)) {
    43 		if(isvisible(c)) {
    44 			unban(c);
       
    45 			if(c->isfloating)
    44 			if(c->isfloating)
    46 				continue;
    45 				continue;
    47 			c->ismax = False;
    46 			c->ismax = False;
    48 			if(i == 0) { /* master */
    47 			if(i == 0) { /* master */
    49 				nw = mw - 2 * c->border;
    48 				nw = mw - 2 * c->border;
    63 			resize(c, nx, ny, nw, nh, False);
    62 			resize(c, nx, ny, nw, nh, False);
    64 			if(n > 1 && th != wah)
    63 			if(n > 1 && th != wah)
    65 				ny += nh + 2 * c->border;
    64 				ny += nh + 2 * c->border;
    66 			i++;
    65 			i++;
    67 		}
    66 		}
    68 		else
       
    69 			ban(c);
       
    70 	focus(NULL);
       
    71 	restack();
       
    72 }
    67 }
    73 
    68 
    74 void
    69 void
    75 zoom(const char *arg) {
    70 zoom(const char *arg) {
    76 	Client *c;
    71 	Client *c;
    77 
    72 
    78 	if(!sel || lt->arrange == floating || sel->isfloating)
    73 	if(!sel || !isarrange(tile) || sel->isfloating)
    79 		return;
    74 		return;
    80 	if((c = sel) == nexttiled(clients))
    75 	if((c = sel) == nexttiled(clients))
    81 		if(!(c = nexttiled(c->next)))
    76 		if(!(c = nexttiled(c->next)))
    82 			return;
    77 			return;
    83 	detach(c);
    78 	detach(c);
    84 	attach(c);
    79 	attach(c);
    85 	focus(c);
    80 	focus(c);
    86 	lt->arrange();
    81 	arrange();
    87 }
    82 }