X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=event.c;h=83e1b864f91de4ae348b6ac41760fdf484a7793b;hb=c8e57332d1a5167d213af0fc9438ff2b56c74fbb;hp=fe25deebc27835bb9147232c54f6c4f347bc7966;hpb=bcb07de75000e75a450e4dddf851e9ce69966f59;p=dwm.git diff --git a/event.c b/event.c index fe25dee..83e1b86 100644 --- a/event.c +++ b/event.c @@ -37,6 +37,10 @@ movemouse(Client *c) { for(;;) { XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev); switch (ev.type) { + case ButtonRelease: + resize(c, True, TopLeft); + XUngrabPointer(dpy, CurrentTime); + return; case Expose: handler[Expose](&ev); break; @@ -46,9 +50,6 @@ movemouse(Client *c) { c->y = ocy + (ev.xmotion.y - y1); resize(c, False, TopLeft); break; - case ButtonRelease: - XUngrabPointer(dpy, CurrentTime); - return; } } } @@ -70,6 +71,10 @@ resizemouse(Client *c) { for(;;) { XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev); switch(ev.type) { + case ButtonRelease: + resize(c, True, TopLeft); + XUngrabPointer(dpy, CurrentTime); + return; case Expose: handler[Expose](&ev); break; @@ -87,9 +92,6 @@ resizemouse(Client *c) { sticky = (ocy <= ev.xmotion.y) ? TopRight : BotRight; resize(c, True, sticky); break; - case ButtonRelease: - XUngrabPointer(dpy, CurrentTime); - return; } } } @@ -148,7 +150,6 @@ configurerequest(XEvent *e) { unsigned long newmask; Client *c; XConfigureRequestEvent *ev = &e->xconfigurerequest; - XEvent synev; XWindowChanges wc; if((c = getclient(ev->window))) { @@ -172,22 +173,14 @@ configurerequest(XEvent *e) { newmask = ev->value_mask & (~(CWSibling | CWStackMode | CWBorderWidth)); if(newmask) XConfigureWindow(dpy, c->win, newmask, &wc); - else { - synev.type = ConfigureNotify; - synev.xconfigure.display = dpy; - synev.xconfigure.event = c->win; - synev.xconfigure.window = c->win; - synev.xconfigure.x = c->x; - synev.xconfigure.y = c->y; - synev.xconfigure.width = c->w; - synev.xconfigure.height = c->h; - synev.xconfigure.border_width = c->border; - synev.xconfigure.above = None; - XSendEvent(dpy, c->win, True, NoEventMask, &synev); - } + else + configure(c); XSync(dpy, False); - if(c->isfloat) + if(c->isfloat) { resize(c, False, TopLeft); + if(!isvisible(c)) + ban(c); + } else arrange(NULL); } @@ -326,6 +319,7 @@ propertynotify(XEvent *e) { } if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) { updatetitle(c); + resizetitle(c); drawtitle(c); } }