diff options
| author | Jan Djärv | 2012-11-17 16:28:56 +0100 |
|---|---|---|
| committer | Jan Djärv | 2012-11-17 16:28:56 +0100 |
| commit | 7436fc63c0c24eb7fee800176c387db87f51de50 (patch) | |
| tree | 3e73b897021483ee4529b583f9f7b7dd93ea8127 | |
| parent | 74ca4d394be5ea982419b5a0203426b78cb5cc0c (diff) | |
| download | emacs-7436fc63c0c24eb7fee800176c387db87f51de50.tar.gz emacs-7436fc63c0c24eb7fee800176c387db87f51de50.zip | |
* nsterm.m (hold_event): Set send_appdefined to YES.
(ns_select): Return at once if events are held (Bug#12834).
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/nsterm.m | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 64adec7491a..d88e43b2b7f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2012-11-17 Jan Djärv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834). | ||
| 4 | (ns_select): Return at once if events are held (Bug#12834). | ||
| 5 | |||
| 1 | 2012-11-16 enami tsugutomo <tsugutomo.enami@jp.sony.com> | 6 | 2012-11-16 enami tsugutomo <tsugutomo.enami@jp.sony.com> |
| 2 | 7 | ||
| 3 | * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64. | 8 | * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64. |
diff --git a/src/nsterm.m b/src/nsterm.m index f4982e0a7cb..9d52bd7f52b 100644 --- a/src/nsterm.m +++ b/src/nsterm.m | |||
| @@ -314,6 +314,7 @@ hold_event (struct input_event *event) | |||
| 314 | hold_event_q.q[hold_event_q.nr++] = *event; | 314 | hold_event_q.q[hold_event_q.nr++] = *event; |
| 315 | /* Make sure ns_read_socket is called, i.e. we have input. */ | 315 | /* Make sure ns_read_socket is called, i.e. we have input. */ |
| 316 | kill (0, SIGIO); | 316 | kill (0, SIGIO); |
| 317 | send_appdefined = YES; | ||
| 317 | } | 318 | } |
| 318 | 319 | ||
| 319 | static Lisp_Object | 320 | static Lisp_Object |
| @@ -3445,6 +3446,14 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds, | |||
| 3445 | 3446 | ||
| 3446 | /* NSTRACE (ns_select); */ | 3447 | /* NSTRACE (ns_select); */ |
| 3447 | 3448 | ||
| 3449 | if (hold_event_q.nr > 0) | ||
| 3450 | { | ||
| 3451 | /* We already have events pending. */ | ||
| 3452 | kill (0, SIGIO); | ||
| 3453 | errno = EINTR; | ||
| 3454 | return -1; | ||
| 3455 | } | ||
| 3456 | |||
| 3448 | for (k = 0; k < nfds+1; k++) | 3457 | for (k = 0; k < nfds+1; k++) |
| 3449 | { | 3458 | { |
| 3450 | if (readfds && FD_ISSET(k, readfds)) ++nr; | 3459 | if (readfds && FD_ISSET(k, readfds)) ++nr; |