view.c
changeset 473 2d8af0d7920d
parent 463 e93b0ad5aeb5
child 479 de69a7b0c8fa
equal deleted inserted replaced
472:298be2d65d2e 473:2d8af0d7920d
    59 
    59 
    60 void
    60 void
    61 dofloat(Arg *arg) {
    61 dofloat(Arg *arg) {
    62 	Client *c;
    62 	Client *c;
    63 
    63 
    64 	maximized = False;
       
    65 
       
    66 	for(c = clients; c; c = c->next) {
    64 	for(c = clients; c; c = c->next) {
    67 		if(isvisible(c)) {
    65 		if(isvisible(c)) {
    68 			resize(c, True, TopLeft);
    66 			resize(c, True, TopLeft);
    69 		}
    67 		}
    70 		else
    68 		else
    79 
    77 
    80 void
    78 void
    81 dotile(Arg *arg) {
    79 dotile(Arg *arg) {
    82 	int h, i, n, w;
    80 	int h, i, n, w;
    83 	Client *c;
    81 	Client *c;
    84 
       
    85 	maximized = False;
       
    86 
    82 
    87 	w = sw - mw;
    83 	w = sw - mw;
    88 	for(n = 0, c = clients; c; c = c->next)
    84 	for(n = 0, c = clients; c; c = c->next)
    89 		if(isvisible(c) && !c->isfloat)
    85 		if(isvisible(c) && !c->isfloat)
    90 			n++;
    86 			n++;
   188 	Client *c;
   184 	Client *c;
   189 
   185 
   190 	for(n = 0, c = clients; c; c = c->next)
   186 	for(n = 0, c = clients; c; c = c->next)
   191 		if(isvisible(c) && !c->isfloat)
   187 		if(isvisible(c) && !c->isfloat)
   192 			n++;
   188 			n++;
   193 	if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized)
   189 	if(!sel || sel->isfloat || n < 2 || (arrange != dotile))
   194 		return;
   190 		return;
   195 
   191 
   196 	if(sel == getnext(clients)) {
   192 	if(sel == getnext(clients)) {
   197 		if(mw + arg->i > sw - 100 || mw + arg->i < 100)
   193 		if(mw + arg->i > sw - 100 || mw + arg->i < 100)
   198 			return;
   194 			return;
   271 	arrange(NULL);
   267 	arrange(NULL);
   272 }
   268 }
   273 
   269 
   274 void
   270 void
   275 zoom(Arg *arg) {
   271 zoom(Arg *arg) {
       
   272 	int tmp;
   276 	unsigned int n;
   273 	unsigned int n;
   277 	Client *c;
   274 	Client *c;
       
   275 	XEvent ev;
       
   276 
       
   277 	if(!sel)
       
   278 		return;
       
   279 
       
   280 	if(sel->isfloat || (arrange == dofloat)) {
       
   281 		tmp = sel->x; sel->x = sel->rx; sel->rx = tmp;
       
   282 		tmp = sel->y; sel->y = sel->ry; sel->ry = tmp;
       
   283 		tmp = sel->w; sel->w = sel->rw; sel->rw = tmp;
       
   284 		tmp = sel->h; sel->h = sel->rh; sel->rh = tmp;
       
   285 		resize(sel, True, TopLeft);
       
   286 		while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
       
   287 		return;
       
   288 	}
   278 
   289 
   279 	for(n = 0, c = clients; c; c = c->next)
   290 	for(n = 0, c = clients; c; c = c->next)
   280 		if(isvisible(c) && !c->isfloat)
   291 		if(isvisible(c) && !c->isfloat)
   281 			n++;
   292 			n++;
   282 	if(!sel || sel->isfloat || n < 2 || (arrange != dotile) || maximized)
   293 	if(n < 2 || (arrange != dotile))
   283 		return;
   294 		return;
   284 
   295 
   285 	if((c = sel) == nexttiled(clients))
   296 	if((c = sel) == nexttiled(clients))
   286 		if(!(c = nexttiled(c->next)))
   297 		if(!(c = nexttiled(c->next)))
   287 			return;
   298 			return;