client.c
changeset 967 66f17bf2c278
parent 966 3ad7903c9e83
child 970 d5c3537ee3be
equal deleted inserted replaced
966:3ad7903c9e83 967:66f17bf2c278
   180 	else
   180 	else
   181 		XKillClient(dpy, sel->win);
   181 		XKillClient(dpy, sel->win);
   182 }
   182 }
   183 
   183 
   184 Bool
   184 Bool
   185 loadprops(Client *c) {
   185 getprops(Client *c) {
   186 	unsigned int i;
   186 	unsigned int i;
   187 	Bool result = False;
   187 	Bool result = False;
   188 
   188 
   189 	if(gettextprop(c->win, dwmprops, prop, sizeof prop)) {
   189 	if(gettextprop(c->win, dwmprops, prop, sizeof prop)) {
   190 		for(i = 0; i < ntags && i < sizeof prop - 1 && prop[i] != '\0'; i++)
   190 		for(i = 0; i < ntags && i < sizeof prop - 1 && prop[i] != '\0'; i++)
   240 	if((rettrans = XGetTransientForHint(dpy, w, &trans) == Success))
   240 	if((rettrans = XGetTransientForHint(dpy, w, &trans) == Success))
   241 		for(t = clients; t && t->win != trans; t = t->next);
   241 		for(t = clients; t && t->win != trans; t = t->next);
   242 	if(t)
   242 	if(t)
   243 		for(i = 0; i < ntags; i++)
   243 		for(i = 0; i < ntags; i++)
   244 			c->tags[i] = t->tags[i];
   244 			c->tags[i] = t->tags[i];
   245 	if(!loadprops(c))
   245 	if(!getprops(c))
   246 		applyrules(c);
   246 		applyrules(c);
   247 	if(!c->isfloating)
   247 	if(!c->isfloating)
   248 		c->isfloating = (rettrans == Success) || c->isfixed;
   248 		c->isfloating = (rettrans == Success) || c->isfixed;
   249 	saveprops(c);
   249 	setprops(c);
   250 	attach(c);
   250 	attach(c);
   251 	attachstack(c);
   251 	attachstack(c);
   252 	XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); /* some windows require this */
   252 	XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); /* some windows require this */
   253 	ban(c);
   253 	ban(c);
   254 	arrange();
   254 	arrange();
   316 		XSync(dpy, False);
   316 		XSync(dpy, False);
   317 	}
   317 	}
   318 }
   318 }
   319 
   319 
   320 void
   320 void
   321 saveprops(Client *c) {
   321 setprops(Client *c) {
   322 	unsigned int i;
   322 	unsigned int i;
   323 
   323 
   324 	for(i = 0; i < ntags && i < sizeof prop - 1; i++)
   324 	for(i = 0; i < ntags && i < sizeof prop - 1; i++)
   325 		prop[i] = c->tags[i] ? '1' : '0';
   325 		prop[i] = c->tags[i] ? '1' : '0';
   326 	if(i < sizeof prop - 1)
   326 	if(i < sizeof prop - 1)