X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=event.c;h=ad4a16b87fc85db0f40bb657440735cef036d4d6;hp=344a0cc9f1d86a36000b3fdd819bd226764b824a;hb=b9da4b082eb658b4142b61c149212f414f7653b6;hpb=5ed16faecb94b551ea00ea940e8d719211576de8 diff --git a/event.c b/event.c index 344a0cc..ad4a16b 100644 --- a/event.c +++ b/event.c @@ -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 propertynotify(XEvent *e); static void unmapnotify(XEvent *e); void (*handler[LASTEvent]) (XEvent *) = { + [ButtonPress] = buttonpress, [ConfigureRequest] = configurerequest, [DestroyNotify] = destroynotify, [EnterNotify] = enternotify, @@ -36,7 +38,7 @@ void (*handler[LASTEvent]) (XEvent *) = { }; unsigned int -flush_events(long even_mask) +discard_events(long even_mask) { XEvent ev; unsigned int n = 0; @@ -45,15 +47,37 @@ flush_events(long even_mask) } 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)