Add the #goo to allow use in C++.
Silence a few more warnings.
Strip down the mkfiles more.
Fix bug in X11 mouse handling, note groups.
diff --git a/src/libdraw/BOT b/src/libdraw/BOT
deleted file mode 100644
index e69de29..0000000
--- a/src/libdraw/BOT
+++ /dev/null
diff --git a/src/libdraw/x11-init.c b/src/libdraw/x11-init.c
index e402dee..73df170 100644
--- a/src/libdraw/x11-init.c
+++ b/src/libdraw/x11-init.c
@@ -26,6 +26,15 @@
 	Display *d;
 	Memimage *m;
 
+	/*
+	 * This rfork(RFNOTEG) isn't exactly right,
+	 * but we need some way to signal window 
+	 * closes.  Right now we post a hangup
+	 * note to the note group, which kills a whole
+	 * lot more than just the current program
+	 * if we don't do this.
+	 */
+	rfork(RFNOTEG);
 	memimageinit();
 
 	d = mallocz(sizeof(Display), 1);
diff --git a/src/libdraw/x11-itrans.c b/src/libdraw/x11-itrans.c
index b4d9e68..337bf5b 100644
--- a/src/libdraw/x11-itrans.c
+++ b/src/libdraw/x11-itrans.c
@@ -190,8 +190,15 @@
 	switch(e->type){
 	case ButtonPress:
 		be = (XButtonEvent*)e;
-		/* Fake message, just sent to make us announce snarf. */
-		if(be->send_event && be->state==~0 && be->button==~0)
+		/* 
+		 * Fake message, just sent to make us announce snarf.
+		 * Apparently state and button are 16 and 8 bits on
+		 * the wire, since they are truncated by the time they
+		 * get to us.
+		 */
+		if(be->send_event
+		&& (~be->state&0xFFFF)==0
+		&& (~be->button&0xFF)==0)
 			return -1;
 		/* BUG? on mac need to inherit these from elsewhere? */
 		m->xy.x = be->x;