diff options
author | Anselm R. Garbe <garbeam@wmii.de> | 2006-07-11 21:24:10 +0200 |
---|---|---|
committer | Anselm R. Garbe <garbeam@wmii.de> | 2006-07-11 21:24:10 +0200 |
commit | b9da4b082eb658b4142b61c149212f414f7653b6 (patch) | |
tree | 146a4e480866d1497c3ec3ccf2b71305b07a5f03 /event.c | |
parent | 5ed16faecb94b551ea00ea940e8d719211576de8 (diff) | |
download | dwm-b9da4b082eb658b4142b61c149212f414f7653b6.tar.gz |
added mouse-based resizals
Diffstat (limited to 'event.c')
-rw-r--r-- | event.c | 30 |
1 files changed, 27 insertions, 3 deletions
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) |