aboutsummaryrefslogtreecommitdiff
path: root/src/libdraw
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2003-11-25 01:40:27 +0000
committerrsc <devnull@localhost>2003-11-25 01:40:27 +0000
commitf7012583e9a7594cbb5ebe8e974bb69061189262 (patch)
tree8eb3244abdd1eed893cad51ce12fccb0a9f7a1f7 /src/libdraw
parentdc13c29ed174fd15e0b025ca4fea8af71015067d (diff)
downloadplan9port-f7012583e9a7594cbb5ebe8e974bb69061189262.tar.gz
plan9port-f7012583e9a7594cbb5ebe8e974bb69061189262.tar.bz2
plan9port-f7012583e9a7594cbb5ebe8e974bb69061189262.zip
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.
Diffstat (limited to 'src/libdraw')
-rw-r--r--src/libdraw/BOT0
-rw-r--r--src/libdraw/x11-init.c9
-rw-r--r--src/libdraw/x11-itrans.c11
3 files changed, 18 insertions, 2 deletions
diff --git a/src/libdraw/BOT b/src/libdraw/BOT
deleted file mode 100644
index e69de29b..00000000
--- a/src/libdraw/BOT
+++ /dev/null
diff --git a/src/libdraw/x11-init.c b/src/libdraw/x11-init.c
index e402dee2..73df170f 100644
--- a/src/libdraw/x11-init.c
+++ b/src/libdraw/x11-init.c
@@ -26,6 +26,15 @@ _initdisplay(void (*error)(Display*, char*), char *label)
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 b4d9e689..337bf5b6 100644
--- a/src/libdraw/x11-itrans.c
+++ b/src/libdraw/x11-itrans.c
@@ -190,8 +190,15 @@ xtoplan9mouse(XDisplay *xd, XEvent *e, Mouse *m)
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;