feature change: right mouse click hides/unhides depending on the current window state. Notes: Tue Jun 20 09:55:41 EDT 2006 rsc I'm not convinced by this. I don't really like hiding my windows. Perhaps you could bottom the window instead? Or just leave it alone. It's intended to be a click just like clicking on a window. That only raises, never lowers or hide.s Russ Reference: /n/sources/patch/sorry/ww-hideunhide Date: Sat Jun 3 17:55:30 CES 2006 Signed-off-by: fst@9netics.com Reviewed-by: rsc --- /sys/src/cmd/winwatch.c Sat Jun 3 17:54:50 2006 +++ /sys/src/cmd/winwatch.c Sat Jun 3 17:54:48 2006 @@ -195,8 +195,8 @@ void click(Mouse m) { - int fd, i, j; - char buf[128]; + int fd, i, j, n; + char buf[128], rbuf[128]; if(m.buttons == 0 || (m.buttons & ~4)) return; @@ -225,11 +225,17 @@ return; sprint(buf, "/dev/wsys/%d/wctl", win[i].n); - if((fd = open(buf, OWRITE)) < 0) + if((fd = open(buf, ORDWR)) < 0) return; - write(fd, "unhide\n", 7); - write(fd, "top\n", 4); - write(fd, "current\n", 8); + if ((n = read(fd, rbuf, 128)) < 0) + return; + rbuf[n] = 0; + if (strstr(rbuf, "hidden")) { + write(fd, "unhide\n", 7); + write(fd, "top\n", 4); + write(fd, "current\n", 8); + } else if (strcmp(win[i].label, "winwatch") != 0) + write(fd, "hide\n", 5); close(fd); }