| 70 |
|
char *ttyargv[4], arg1[10], arg2[10]; |
| 71 |
|
int pd[2]; |
| 72 |
|
int com; |
| 73 |
– |
register Pixwin *pw; |
| 73 |
|
|
| 74 |
|
progname = argv[0]; |
| 75 |
|
|
| 140 |
|
Destroy_status st; |
| 141 |
|
{ |
| 142 |
|
if (st != DESTROY_CHECKING) { |
| 143 |
< |
kill((int)window_get(tty, TTY_PID), SIGHUP); |
| 144 |
< |
kill(getppid(), SIGHUP); |
| 143 |
> |
kill((int)window_get(tty, TTY_PID), SIGPIPE); |
| 144 |
> |
kill(getppid(), SIGPIPE); |
| 145 |
|
} |
| 146 |
|
return(notify_next_destroy_func(fr, st)); |
| 147 |
|
} |
| 220 |
|
|
| 221 |
|
sun_getcur() /* get cursor position */ |
| 222 |
|
{ |
| 223 |
< |
Event *ep; |
| 223 |
> |
Event ev; |
| 224 |
|
int xpos, ypos; |
| 225 |
|
int c; |
| 226 |
|
|
| 227 |
|
notify_no_dispatch(); /* allow read to block */ |
| 228 |
|
window_set(canvas, WIN_CONSUME_KBD_EVENT, WIN_ASCII_EVENTS, 0); |
| 229 |
< |
while (window_read_event(canvas, ep) == 0) { |
| 230 |
< |
switch (event_id(ep)) { |
| 231 |
< |
case MS_LEFT: |
| 232 |
< |
case MB1: |
| 233 |
< |
c = MB1; |
| 234 |
< |
break; |
| 235 |
< |
case MS_MIDDLE: |
| 236 |
< |
case MB2: |
| 237 |
< |
c = MB2; |
| 239 |
< |
break; |
| 240 |
< |
case MS_RIGHT: |
| 241 |
< |
case MB3: |
| 242 |
< |
c = MB3; |
| 243 |
< |
break; |
| 244 |
< |
case ABORT: |
| 245 |
< |
c = ABORT; |
| 246 |
< |
break; |
| 247 |
< |
default: |
| 248 |
< |
continue; |
| 249 |
< |
} |
| 250 |
< |
xpos = event_x(ep); |
| 251 |
< |
ypos = yres-1 - event_y(ep); |
| 229 |
> |
again: |
| 230 |
> |
if (window_read_event(canvas, &ev) == -1) { |
| 231 |
> |
notify_perror(); |
| 232 |
> |
quit("window event read error"); |
| 233 |
> |
} |
| 234 |
> |
c = event_id(&ev); |
| 235 |
> |
switch (c) { |
| 236 |
> |
case MS_LEFT: |
| 237 |
> |
c = MB1; |
| 238 |
|
break; |
| 239 |
+ |
case MS_MIDDLE: |
| 240 |
+ |
c = MB2; |
| 241 |
+ |
break; |
| 242 |
+ |
case MS_RIGHT: |
| 243 |
+ |
c = MB3; |
| 244 |
+ |
break; |
| 245 |
+ |
default: |
| 246 |
+ |
if (c < ASCII_FIRST || c > ASCII_LAST) |
| 247 |
+ |
goto again; |
| 248 |
+ |
break; |
| 249 |
|
} |
| 250 |
+ |
xpos = event_x(&ev); |
| 251 |
+ |
ypos = yres-1 - event_y(&ev); |
| 252 |
+ |
|
| 253 |
|
window_set(canvas, WIN_IGNORE_KBD_EVENT, WIN_ASCII_EVENTS, 0); |
| 254 |
|
notify_do_dispatch(); |
| 255 |
|
putc(COM_GETCUR, stdout); |