X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=event.c;h=5ff6b911d8df91848c0a9ce80172228bf522b9f8;hp=ba41f55638260aa35acda3f153b38cfcf429b909;hb=8b59083eb13c0712e04d9a5b6d7bf4af5913c442;hpb=896f08d7d553f7def3877648c113cf03e6ca546a diff --git a/event.c b/event.c index ba41f55..5ff6b91 100644 --- a/event.c +++ b/event.c @@ -37,13 +37,11 @@ void (*handler[LASTEvent]) (XEvent *) = { [UnmapNotify] = unmapnotify }; -unsigned int +void discard_events(long even_mask) { XEvent ev; - unsigned int n = 0; - while(XCheckMaskEvent(dpy, even_mask, &ev)) n++; - return n; + while(XCheckMaskEvent(dpy, even_mask, &ev)); } static void @@ -53,6 +51,7 @@ buttonpress(XEvent *e) Client *c; if((c = getclient(ev->window))) { + craise(c); switch(ev->button) { default: break; @@ -60,7 +59,7 @@ buttonpress(XEvent *e) mmove(c); break; case Button2: - XLowerWindow(dpy, c->win); + lower(c); break; case Button3: mresize(c); @@ -78,6 +77,7 @@ configurerequest(XEvent *e) ev->value_mask &= ~CWSibling; if((c = getclient(ev->window))) { + gravitate(c, True); if(ev->value_mask & CWX) c->x = ev->x; if(ev->value_mask & CWY) @@ -86,13 +86,16 @@ configurerequest(XEvent *e) c->w = ev->width; if(ev->value_mask & CWHeight) c->h = ev->height; + if(ev->value_mask & CWBorderWidth) + c->border = ev->border_width; + gravitate(c, False); } wc.x = ev->x; wc.y = ev->y; wc.width = ev->width; wc.height = ev->height; - wc.border_width = 0; + wc.border_width = 1; wc.sibling = None; wc.stack_mode = Above; ev->value_mask &= ~CWStackMode; @@ -122,10 +125,8 @@ enternotify(XEvent *e) if((c = getclient(ev->window))) focus(c); - else if(ev->window == root) { - sel_screen = True; - /*draw_frames();*/ - } + else if(ev->window == root) + issel = True; } static void @@ -133,10 +134,8 @@ leavenotify(XEvent *e) { XCrossingEvent *ev = &e->xcrossing; - if((ev->window == root) && !ev->same_screen) { - sel_screen = True; - /*draw_frames();*/ - } + if((ev->window == root) && !ev->same_screen) + issel = True; } static void @@ -146,10 +145,8 @@ expose(XEvent *e) Client *c; if(ev->count == 0) { - if((c = getclient(ev->window))) + if((c = gettitle(ev->window))) draw_client(c); - else if(ev->window == barwin) - draw_bar(); } } @@ -187,11 +184,11 @@ propertynotify(XEvent *e) if(ev->state == PropertyDelete) return; /* ignore */ - if(ev->atom == wm_atom[WMProtocols]) { - c->proto = win_proto(c->win); - return; - } if((c = getclient(ev->window))) { + if(ev->atom == wm_atom[WMProtocols]) { + c->proto = win_proto(c->win); + return; + } switch (ev->atom) { default: break; case XA_WM_TRANSIENT_FOR: @@ -204,10 +201,7 @@ propertynotify(XEvent *e) } if(ev->atom == XA_WM_NAME || ev->atom == net_atom[NetWMName]) { update_name(c); - if(c == stack) - draw_bar(); - else - draw_client(c); + draw_client(c); } } }