event.c
changeset 53 529901e6a227
parent 43 989178822938
child 55 fcbf7213d96f
equal deleted inserted replaced
52:d18f6dd0cf23 53:529901e6a227
    87 		if(ev->value_mask & CWHeight)
    87 		if(ev->value_mask & CWHeight)
    88 			c->h = ev->height;
    88 			c->h = ev->height;
    89 		if(ev->value_mask & CWBorderWidth)
    89 		if(ev->value_mask & CWBorderWidth)
    90 			c->border = ev->border_width;
    90 			c->border = ev->border_width;
    91 		gravitate(c, False);
    91 		gravitate(c, False);
       
    92 		resize(c, True);
    92 	}
    93 	}
    93 
    94 
    94 	wc.x = ev->x;
    95 	wc.x = ev->x;
    95 	wc.y = ev->y;
    96 	wc.y = ev->y;
    96 	wc.width = ev->width;
    97 	wc.width = ev->width;
   177 
   178 
   178 static void
   179 static void
   179 propertynotify(XEvent *e)
   180 propertynotify(XEvent *e)
   180 {
   181 {
   181 	XPropertyEvent *ev = &e->xproperty;
   182 	XPropertyEvent *ev = &e->xproperty;
       
   183 	Window trans;
   182 	Client *c;
   184 	Client *c;
   183 
   185 
   184 	if(ev->state == PropertyDelete)
   186 	if(ev->state == PropertyDelete)
   185 		return; /* ignore */
   187 		return; /* ignore */
   186 
   188 
   190 			return;
   192 			return;
   191 		}
   193 		}
   192 		switch (ev->atom) {
   194 		switch (ev->atom) {
   193 			default: break;
   195 			default: break;
   194 			case XA_WM_TRANSIENT_FOR:
   196 			case XA_WM_TRANSIENT_FOR:
   195 				XGetTransientForHint(dpy, c->win, &c->trans);
   197 				XGetTransientForHint(dpy, c->win, &trans);
       
   198 				if(!c->floating && (c->floating = (trans != 0)))
       
   199 					arrange(NULL);
   196 				break;
   200 				break;
   197 				update_size(c);
       
   198 			case XA_WM_NORMAL_HINTS:
   201 			case XA_WM_NORMAL_HINTS:
   199 				update_size(c);
   202 				update_size(c);
   200 				break;
   203 				break;
   201 		}
   204 		}
   202 		if(ev->atom == XA_WM_NAME || ev->atom == net_atom[NetWMName]) {
   205 		if(ev->atom == XA_WM_NAME || ev->atom == net_atom[NetWMName]) {