X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=event.c;h=dfe2552e2756f86d2b2e4777e978583ba8e6fcaf;hb=f8415019d4edc1cd4f310adb256e6656e85bfe75;hp=fbce6315e926029507c634c2116effdebe992b2c;hpb=3167373512c562f8f040203d2ee29084c76d00a0;p=dwm.git diff --git a/event.c b/event.c index fbce631..dfe2552 100644 --- a/event.c +++ b/event.c @@ -20,6 +20,14 @@ KEYS #define CLEANMASK(mask) (mask & ~(numlockmask | LockMask)) #define MOUSEMASK (BUTTONMASK | PointerMotionMask) +static Client * +getclient(Window w) { + Client *c; + + for(c = clients; c && c->win != w; c = c->next); + return c; +} + static void movemouse(Client *c) { int x1, y1, ocx, ocy, di, nx, ny; @@ -165,7 +173,6 @@ buttonpress(XEvent *e) { static void configurerequest(XEvent *e) { - int x, y, w, h; Client *c; XConfigureRequestEvent *ev = &e->xconfigurerequest; XWindowChanges wc; @@ -175,24 +182,19 @@ configurerequest(XEvent *e) { if(ev->value_mask & CWBorderWidth) c->border = ev->border_width; if(c->isfixed || c->isfloat || (arrange == dofloat)) { - x = (ev->value_mask & CWX) ? ev->x : c->x; - y = (ev->value_mask & CWY) ? ev->y : c->y; - w = (ev->value_mask & CWWidth) ? ev->width : c->w; - h = (ev->value_mask & CWHeight) ? ev->height : c->h; + if(ev->value_mask & CWX) + c->x = ev->x; + if(ev->value_mask & CWY) + c->y = ev->y; + if(ev->value_mask & CWWidth) + c->w = ev->width; + if(ev->value_mask & CWHeight) + c->h = ev->height; if((ev->value_mask & (CWX | CWY)) && !(ev->value_mask & (CWWidth | CWHeight))) - { - c->x = x; - c->y = y; configure(c); - if(isvisible(c)) - XMoveWindow(dpy, c->win, c->x, c->y); - } - else { - resize(c, x, y, w, h, False); - if(!isvisible(c)) - ban(c); - } + if(isvisible(c)) + XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); } else configure(c);