diff options
| author | Karoly Lorentey | 2004-01-11 02:45:44 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-01-11 02:45:44 +0000 |
| commit | 4ca927b4e0eb688a0eb224463288443164dd716f (patch) | |
| tree | 07e786aa4aba5640b38a872163b8960c86368d92 /README.multi-tty | |
| parent | 8f1ce42333b410e736053a7c5cbbf102032c84f2 (diff) | |
| download | emacs-4ca927b4e0eb688a0eb224463288443164dd716f.tar.gz emacs-4ca927b4e0eb688a0eb224463288443164dd716f.zip | |
Fix C-g handling with multiple ttys.
src/sysdep.c (init_sys_modes): Disable interrupt and quit keys on
secondary terminals. Added a big fat comment about this.
lib-src/emacsclient.c (init_signals): Don't pass SIGINT and SIGQUIT to Emacs.
src/keyboard.c (interrupt_signal): Exit Emacs if there are no frames
on the controlling tty. Otherwise set internal_last_event_frame to
the controlling tty's top frame.
src/term.c (ring_bell, tty_ring_bell): Don't look at updating_frame.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-52
Diffstat (limited to 'README.multi-tty')
| -rw-r--r-- | README.multi-tty | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/README.multi-tty b/README.multi-tty index e7979661831..8ca1c10a2ed 100644 --- a/README.multi-tty +++ b/README.multi-tty | |||
| @@ -133,14 +133,12 @@ THINGS TO DO | |||
| 133 | the fly in write_glyphs, which might be problematic, as color | 133 | the fly in write_glyphs, which might be problematic, as color |
| 134 | approximation is currently done in lisp (term/tty-colors.el).) | 134 | approximation is currently done in lisp (term/tty-colors.el).) |
| 135 | 135 | ||
| 136 | ** frame-creation-function should always create a frame that is on the | ||
| 137 | same display as the selected frame. Maybe frame-creation-function | ||
| 138 | should simply be removed and make-frame changed to do the right | ||
| 139 | thing. | ||
| 140 | |||
| 141 | ** Fix interactive use of temacs. There are face-related SEGVs, most | 136 | ** Fix interactive use of temacs. There are face-related SEGVs, most |
| 142 | likely because of changes in realize_default_face, realize_face. | 137 | likely because of changes in realize_default_face, realize_face. |
| 143 | 138 | ||
| 139 | ** Very strange bug: visible-bell does not work on secondary | ||
| 140 | terminals. This might be something xterm (konsole) specific. | ||
| 141 | |||
| 144 | ** Allow opening an X session after -nw. | 142 | ** Allow opening an X session after -nw. |
| 145 | 143 | ||
| 146 | ** Find out the best way to support suspending Emacs with multiple | 144 | ** Find out the best way to support suspending Emacs with multiple |
| @@ -149,7 +147,7 @@ THINGS TO DO | |||
| 149 | extend emacsclient to handle suspend/resume. A `kill -STOP' almost | 147 | extend emacsclient to handle suspend/resume. A `kill -STOP' almost |
| 150 | works right now.) | 148 | works right now.) |
| 151 | 149 | ||
| 152 | ** Exiting Emacs while there are emacsclient frames don't restore the | 150 | ** Exiting Emacs while there are emacsclient frames doesn't restore the |
| 153 | ttys to their default states. | 151 | ttys to their default states. |
| 154 | 152 | ||
| 155 | ** Move baud_rate to struct display. | 153 | ** Move baud_rate to struct display. |
| @@ -182,9 +180,6 @@ THINGS TO DO | |||
| 182 | why raw terminal support is broken again. I really do need to | 180 | why raw terminal support is broken again. I really do need to |
| 183 | understand input.) | 181 | understand input.) |
| 184 | 182 | ||
| 185 | ** Make sure C-g goes to the right frame with ttys. This is hard, as | ||
| 186 | SIGINT doesn't have a tty parameter. :-( | ||
| 187 | |||
| 188 | ** I have seen a case when Emacs with multiple ttys fell into a loop | 183 | ** I have seen a case when Emacs with multiple ttys fell into a loop |
| 189 | eating 100% of CPU time. Strace showed this loop: | 184 | eating 100% of CPU time. Strace showed this loop: |
| 190 | 185 | ||
| @@ -212,7 +207,8 @@ THINGS TO DO | |||
| 212 | about face problems. This can even lock up Emacs (if the recursive | 207 | about face problems. This can even lock up Emacs (if the recursive |
| 213 | frame sets single_kboard). Update: the face problems are caused by | 208 | frame sets single_kboard). Update: the face problems are caused by |
| 214 | bugs in term.el, not in multi-tty. The lockup is caused by | 209 | bugs in term.el, not in multi-tty. The lockup is caused by |
| 215 | single_kboard mode. | 210 | single_kboard mode, and is not easily solvable. The best thing to |
| 211 | do is to simply refuse to create a tty frame of type `eterm'. | ||
| 216 | 212 | ||
| 217 | DIARY OF CHANGES | 213 | DIARY OF CHANGES |
| 218 | ---------------- | 214 | ---------------- |
| @@ -520,4 +516,26 @@ DIARY OF CHANGES | |||
| 520 | 516 | ||
| 521 | (Fixed.) | 517 | (Fixed.) |
| 522 | 518 | ||
| 519 | -- frame-creation-function should always create a frame that is on the | ||
| 520 | same display as the selected frame. Maybe frame-creation-function | ||
| 521 | should simply be removed and make-frame changed to do the right | ||
| 522 | thing. | ||
| 523 | |||
| 524 | (Done, with a nice hack. frame-creation-function is now frame-local.) | ||
| 525 | |||
| 526 | -- Fix C-g on raw ttys. | ||
| 527 | |||
| 528 | (Done. I disabled the interrupt/quit keys on all secondary | ||
| 529 | terminals, so Emacs sees C-g as normal input. This looks like an | ||
| 530 | overkill, because emacsclient has extra code to pass SIGINT to | ||
| 531 | Emacs, so C-g should remain the interrupt/quit key on emacsclient | ||
| 532 | frames. See the next entry why implementing this distinction would | ||
| 533 | be a bad idea.) | ||
| 534 | |||
| 535 | -- Make sure C-g goes to the right frame with ttys. This is hard, as | ||
| 536 | SIGINT doesn't have a tty parameter. :-( | ||
| 537 | |||
| 538 | (Done, the previous change fixes this as a pleasant side effect.) | ||
| 539 | |||
| 540 | |||
| 523 | ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d | 541 | ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d |