aboutsummaryrefslogtreecommitdiff
path: root/src/libdraw
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2020-01-14 18:05:51 -0500
committerRuss Cox <rsc@swtch.com>2020-01-14 18:05:51 -0500
commit40d787ab1276f191bcf030748a954d6708d83228 (patch)
tree717dfe6329b9b5d62beaa5e7f183733698d31db6 /src/libdraw
parent9505cd15a64933bf58ec50548339cf98b1854646 (diff)
downloadplan9port-40d787ab1276f191bcf030748a954d6708d83228.tar.gz
plan9port-40d787ab1276f191bcf030748a954d6708d83228.tar.bz2
plan9port-40d787ab1276f191bcf030748a954d6708d83228.zip
libdraw: send hangup to process when window is lost
This matches the Plan 9 behavior a bit better. Fixes #30.
Diffstat (limited to 'src/libdraw')
-rw-r--r--src/libdraw/mouse.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libdraw/mouse.c b/src/libdraw/mouse.c
index 64a7f73d..382efae5 100644
--- a/src/libdraw/mouse.c
+++ b/src/libdraw/mouse.c
@@ -52,8 +52,12 @@ _ioproc(void *arg)
one = 1;
resized = 0;
for(;;){
- if(_displayrdmouse(mc->display, &m, &resized) < 0)
+ if(_displayrdmouse(mc->display, &m, &resized) < 0) {
+ if(postnote(PNPROC, getpid(), "hangup") < 0)
+ fprint(2, "postnote: %r\n");
+ sleep(10*1000);
threadexitsall("mouse read error");
+ }
if(resized)
send(mc->resizec, &one);
send(mc->c, &m);