From b9da4b082eb658b4142b61c149212f414f7653b6 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Tue, 11 Jul 2006 21:24:10 +0200 Subject: added mouse-based resizals --- event.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'event.c') 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; @@ -44,6 +46,29 @@ flush_events(long even_mask) return n; } +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) { @@ -51,9 +76,8 @@ configurerequest(XEvent *e) 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) -- cgit v1.2.3-54-g00ecf