client.c
changeset 953 d7de5c7bdbe4
parent 952 4f66942cc63b
child 957 e61ca30d9474
equal deleted inserted replaced
952:4f66942cc63b 953:d7de5c7bdbe4
   295 		XSync(dpy, False);
   295 		XSync(dpy, False);
   296 	}
   296 	}
   297 }
   297 }
   298 
   298 
   299 void
   299 void
   300 togglefloating(const char *arg) {
       
   301 	if(!sel || isfloating())
       
   302 		return;
       
   303 	sel->isfloating = !sel->isfloating;
       
   304 	if(sel->isfloating)
       
   305 		resize(sel, sel->x, sel->y, sel->w, sel->h, True);
       
   306 	arrange();
       
   307 }
       
   308 
       
   309 void
       
   310 unban(Client *c) {
   300 unban(Client *c) {
   311 	if(!c->isbanned)
   301 	if(!c->isbanned)
   312 		return;
   302 		return;
   313 	XMapWindow(dpy, c->win);
   303 	XMapWindow(dpy, c->win);
   314 	setclientstate(c, NormalState);
   304 	setclientstate(c, NormalState);
   315 	c->isbanned = False;
   305 	c->isbanned = False;
   316 }
   306 }
   317 
   307 
   318 void
   308 void
   319 unmanage(Client *c) {
   309 unmanage(Client *c, long state) {
   320 	XWindowChanges wc;
   310 	XWindowChanges wc;
   321 
   311 
   322 	wc.border_width = c->oldborder;
   312 	wc.border_width = c->oldborder;
   323 	/* The server grab construct avoids race conditions. */
   313 	/* The server grab construct avoids race conditions. */
   324 	XGrabServer(dpy);
   314 	XGrabServer(dpy);
   327 	detach(c);
   317 	detach(c);
   328 	detachstack(c);
   318 	detachstack(c);
   329 	if(sel == c)
   319 	if(sel == c)
   330 		focus(NULL);
   320 		focus(NULL);
   331 	XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
   321 	XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
   332 	setclientstate(c, WithdrawnState);
   322 	setclientstate(c, state);
   333 	free(c->tags);
   323 	free(c->tags);
   334 	free(c);
   324 	free(c);
   335 	XSync(dpy, False);
   325 	XSync(dpy, False);
   336 	XSetErrorHandler(xerror);
   326 	XSetErrorHandler(xerror);
   337 	XUngrabServer(dpy);
   327 	XUngrabServer(dpy);