diff -r aaf520f53110 -r 1efa34c6e1b6 event.c --- a/event.c Tue Jul 11 18:59:09 2006 +0200 +++ b/event.c Tue Jul 11 21:24:10 2006 +0200 @@ -12,6 +12,7 @@ #include "wm.h" /* local functions */ +static void buttonpress(XEvent *e); static void configurerequest(XEvent *e); static void destroynotify(XEvent *e); static void enternotify(XEvent *e); @@ -23,6 +24,7 @@ static void unmapnotify(XEvent *e); void (*handler[LASTEvent]) (XEvent *) = { + [ButtonPress] = buttonpress, [ConfigureRequest] = configurerequest, [DestroyNotify] = destroynotify, [EnterNotify] = enternotify, @@ -36,7 +38,7 @@ }; unsigned int -flush_events(long even_mask) +discard_events(long even_mask) { XEvent ev; unsigned int n = 0; @@ -45,15 +47,37 @@ } static void +buttonpress(XEvent *e) +{ + XButtonPressedEvent *ev = &e->xbutton; + Client *c; + + if((c = getclient(ev->window))) { + switch(ev->button) { + default: + break; + case Button1: + mmove(c); + break; + case Button2: + XLowerWindow(dpy, c->win); + break; + case Button3: + mresize(c); + break; + } + } +} + +static void configurerequest(XEvent *e) { XConfigureRequestEvent *ev = &e->xconfigurerequest; XWindowChanges wc; Client *c; - c = getclient(ev->window); ev->value_mask &= ~CWSibling; - if(c) { + if((c = getclient(ev->window))) { if(ev->value_mask & CWX) c->r[RFloat].x = ev->x; if(ev->value_mask & CWY)