client.c
changeset 927 60d5a92ce85c
parent 915 67104d329f06
child 928 a692fe8c0f34
equal deleted inserted replaced
926:6f9cf0cfe278 927:60d5a92ce85c
    96 	clients = c;
    96 	clients = c;
    97 }
    97 }
    98 
    98 
    99 void
    99 void
   100 ban(Client *c) {
   100 ban(Client *c) {
   101 	if (c->isbanned)
   101 	if(c->isbanned)
   102 		return;
   102 		return;
   103 	XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
   103 	XUnmapWindow(dpy, c->win);
       
   104 	setclientstate(c, IconicState);
   104 	c->isbanned = True;
   105 	c->isbanned = True;
       
   106 	c->unmapped++;
   105 }
   107 }
   106 
   108 
   107 void
   109 void
   108 configure(Client *c) {
   110 configure(Client *c) {
   109 	XConfigureEvent ce;
   111 	XConfigureEvent ce;
   133 	c->next = c->prev = NULL;
   135 	c->next = c->prev = NULL;
   134 }
   136 }
   135 
   137 
   136 void
   138 void
   137 focus(Client *c) {
   139 focus(Client *c) {
   138 	if((!c && selscreen)|| (c && !isvisible(c)))
   140 	if((!c && selscreen) || (c && !isvisible(c)))
   139 		for(c = stack; c && !isvisible(c); c = c->snext);
   141 		for(c = stack; c && !isvisible(c); c = c->snext);
   140 	if(sel && sel != c) {
   142 	if(sel && sel != c) {
   141 		grabbuttons(sel, False);
   143 		grabbuttons(sel, False);
   142 		XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
   144 		XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
   143 	}
   145 	}
   222 	settags(c, t);
   224 	settags(c, t);
   223 	if(!c->isfloating)
   225 	if(!c->isfloating)
   224 		c->isfloating = (rettrans == Success) || c->isfixed;
   226 		c->isfloating = (rettrans == Success) || c->isfixed;
   225 	attach(c);
   227 	attach(c);
   226 	attachstack(c);
   228 	attachstack(c);
   227 	ban(c);
   229 	c->isbanned = True;
   228 	XMapWindow(dpy, w);
       
   229 	setclientstate(c, NormalState);
       
   230 	focus(c);
   230 	focus(c);
   231 	lt->arrange();
   231 	lt->arrange();
   232 }
   232 }
   233 
   233 
   234 void
   234 void
   306 	lt->arrange();
   306 	lt->arrange();
   307 }
   307 }
   308 
   308 
   309 void
   309 void
   310 unban(Client *c) {
   310 unban(Client *c) {
   311 	if (!c->isbanned)
   311 	if(!c->isbanned)
   312 		return;
   312 		return;
   313 	XMoveWindow(dpy, c->win, c->x, c->y);
   313 	XMapWindow(dpy, c->win);
       
   314 	setclientstate(c, NormalState);
   314 	c->isbanned = False;
   315 	c->isbanned = False;
   315 }
   316 }
   316 
   317 
   317 void
   318 void
   318 unmanage(Client *c) {
   319 unmanage(Client *c) {