about summary refs log tree commit diff stats
path: root/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'event.c')
-rw-r--r--event.c30
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)