comparison event.c @ 158:4e42dfc0f61f

new resize stuff (using XConfigureWindow instead of XSendEvent)
author arg@10ksloc.org
date Wed, 02 Aug 2006 10:43:21 +0200
parents 02545d36e9d3
children a5eab6aaf859
comparison
equal deleted inserted replaced
157:93012e947eae 158:4e42dfc0f61f
151 { 151 {
152 Client *c; 152 Client *c;
153 XConfigureRequestEvent *ev = &e->xconfigurerequest; 153 XConfigureRequestEvent *ev = &e->xconfigurerequest;
154 XWindowChanges wc; 154 XWindowChanges wc;
155 155
156 ev->value_mask &= ~CWSibling;
157 if((c = getclient(ev->window))) { 156 if((c = getclient(ev->window))) {
158 gravitate(c, True); 157 gravitate(c, True);
159 if(ev->value_mask & CWX) 158 if(ev->value_mask & CWX)
160 c->x = ev->x; 159 c->x = ev->x;
161 if(ev->value_mask & CWY) 160 if(ev->value_mask & CWY)
167 if(ev->value_mask & CWBorderWidth) 166 if(ev->value_mask & CWBorderWidth)
168 c->border = 1; 167 c->border = 1;
169 gravitate(c, False); 168 gravitate(c, False);
170 resize(c, True, TopLeft); 169 resize(c, True, TopLeft);
171 } 170 }
172 171 else {
173 wc.x = ev->x; 172 wc.x = ev->x;
174 wc.y = ev->y; 173 wc.y = ev->y;
175 wc.width = ev->width; 174 wc.width = ev->width;
176 wc.height = ev->height; 175 wc.height = ev->height;
177 wc.border_width = 1; 176 wc.border_width = 1;
178 wc.sibling = None; 177 XConfigureWindow(dpy, ev->window,
179 wc.stack_mode = Above; 178 CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
180 ev->value_mask &= ~CWStackMode; 179 XSync(dpy, False);
181 ev->value_mask |= CWBorderWidth; 180 }
182 XConfigureWindow(dpy, ev->window, ev->value_mask, &wc);
183 XSync(dpy, False);
184 } 181 }
185 182
186 static void 183 static void
187 destroynotify(XEvent *e) 184 destroynotify(XEvent *e)
188 { 185 {