client.c
changeset 124 75576e44c1d8
parent 123 61490330e90a
child 127 1480e19f6377
equal deleted inserted replaced
123:61490330e90a 124:75576e44c1d8
    68 	Client *c;
    68 	Client *c;
    69    
    69    
    70 	if(!sel)
    70 	if(!sel)
    71 		return;
    71 		return;
    72 
    72 
       
    73 	if(sel->ismax)
       
    74 		togglemax(NULL);
       
    75 
    73 	if(!(c = getnext(sel->next, tsel)))
    76 	if(!(c = getnext(sel->next, tsel)))
    74 		c = getnext(clients, tsel);
    77 		c = getnext(clients, tsel);
    75 	if(c) {
    78 	if(c) {
    76 		higher(c);
    79 		higher(c);
    77 		c->revert = sel;
    80 		c->revert = sel;
    84 {
    87 {
    85 	Client *c;
    88 	Client *c;
    86 
    89 
    87 	if(!sel)
    90 	if(!sel)
    88 		return;
    91 		return;
       
    92 
       
    93 	if(sel->ismax)
       
    94 		togglemax(NULL);
    89 
    95 
    90 	if((c = sel->revert && sel->revert->tags[tsel] ? sel->revert : NULL)) {
    96 	if((c = sel->revert && sel->revert->tags[tsel] ? sel->revert : NULL)) {
    91 		higher(c);
    97 		higher(c);
    92 		focus(c);
    98 		focus(c);
    93 	}
    99 	}
   232 	settags(c);
   238 	settags(c);
   233 
   239 
   234 	c->next = clients;
   240 	c->next = clients;
   235 	clients = c;
   241 	clients = c;
   236 
   242 
   237 	XGrabButton(dpy, Button1, ControlMask, c->win, False, ButtonPressMask,
       
   238 			GrabModeAsync, GrabModeSync, None, None);
       
   239 	XGrabButton(dpy, Button1, MODKEY, c->win, False, ButtonPressMask,
   243 	XGrabButton(dpy, Button1, MODKEY, c->win, False, ButtonPressMask,
   240 			GrabModeAsync, GrabModeSync, None, None);
   244 			GrabModeAsync, GrabModeSync, None, None);
   241 	XGrabButton(dpy, Button2, MODKEY, c->win, False, ButtonPressMask,
   245 	XGrabButton(dpy, Button2, MODKEY, c->win, False, ButtonPressMask,
   242 			GrabModeAsync, GrabModeSync, None, None);
   246 			GrabModeAsync, GrabModeSync, None, None);
   243 	XGrabButton(dpy, Button3, MODKEY, c->win, False, ButtonPressMask,
   247 	XGrabButton(dpy, Button3, MODKEY, c->win, False, ButtonPressMask,
   259 	}
   263 	}
   260 	else {
   264 	else {
   261 		XMapRaised(dpy, c->win);
   265 		XMapRaised(dpy, c->win);
   262 		XMapRaised(dpy, c->title);
   266 		XMapRaised(dpy, c->title);
   263 	}
   267 	}
   264 }
       
   265 
       
   266 void
       
   267 maximize(Arg *arg)
       
   268 {
       
   269 	if(!sel)
       
   270 		return;
       
   271 	sel->x = sx;
       
   272 	sel->y = sy + bh;
       
   273 	sel->w = sw - 2 * sel->border;
       
   274 	sel->h = sh - 2 * sel->border - bh;
       
   275 	higher(sel);
       
   276 	resize(sel, False, TopLeft);
       
   277 }
   268 }
   278 
   269 
   279 void
   270 void
   280 pop(Client *c)
   271 pop(Client *c)
   281 {
   272 {
   403 	XFree(name.value);
   394 	XFree(name.value);
   404 	resizetitle(c);
   395 	resizetitle(c);
   405 }
   396 }
   406 
   397 
   407 void
   398 void
       
   399 togglemax(Arg *arg)
       
   400 {
       
   401 	int ox, oy, ow, oh;
       
   402 	XEvent ev;
       
   403 
       
   404 	if(!sel)
       
   405 		return;
       
   406 
       
   407 	if((sel->ismax = !sel->ismax)) {
       
   408 		ox = sel->x;
       
   409 		oy = sel->y;
       
   410 		ow = sel->w;
       
   411 		oh = sel->h;
       
   412 		sel->x = sx;
       
   413 		sel->y = sy + bh;
       
   414 		sel->w = sw - 2 * sel->border;
       
   415 		sel->h = sh - 2 * sel->border - bh;
       
   416 
       
   417 		higher(sel);
       
   418 		resize(sel, False, TopLeft);
       
   419 
       
   420 		sel->x = ox;
       
   421 		sel->y = oy;
       
   422 		sel->w = ow;
       
   423 		sel->h = oh;
       
   424 	}
       
   425 	else
       
   426 		resize(sel, False, TopLeft);
       
   427 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
       
   428 }
       
   429 
       
   430 void
   408 unmanage(Client *c)
   431 unmanage(Client *c)
   409 {
   432 {
   410 	Client **l;
   433 	Client **l;
   411 
   434 
   412 	XGrabServer(dpy);
   435 	XGrabServer(dpy);