Mercurial > aewl
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 { |