Mercurial > emacs
diff README.multi-tty @ 83012:4aa172a45af1
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
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sun, 11 Jan 2004 02:45:44 +0000 |
parents | b2b37c85b00a |
children | e77d1a63471b |
line wrap: on
line diff
--- a/README.multi-tty Sun Jan 11 01:18:45 2004 +0000 +++ b/README.multi-tty Sun Jan 11 02:45:44 2004 +0000 @@ -133,14 +133,12 @@ the fly in write_glyphs, which might be problematic, as color approximation is currently done in lisp (term/tty-colors.el).) -** frame-creation-function should always create a frame that is on the - same display as the selected frame. Maybe frame-creation-function - should simply be removed and make-frame changed to do the right - thing. - ** Fix interactive use of temacs. There are face-related SEGVs, most likely because of changes in realize_default_face, realize_face. +** Very strange bug: visible-bell does not work on secondary + terminals. This might be something xterm (konsole) specific. + ** Allow opening an X session after -nw. ** Find out the best way to support suspending Emacs with multiple @@ -149,7 +147,7 @@ extend emacsclient to handle suspend/resume. A `kill -STOP' almost works right now.) -** Exiting Emacs while there are emacsclient frames don't restore the +** Exiting Emacs while there are emacsclient frames doesn't restore the ttys to their default states. ** Move baud_rate to struct display. @@ -182,9 +180,6 @@ why raw terminal support is broken again. I really do need to understand input.) -** Make sure C-g goes to the right frame with ttys. This is hard, as - SIGINT doesn't have a tty parameter. :-( - ** I have seen a case when Emacs with multiple ttys fell into a loop eating 100% of CPU time. Strace showed this loop: @@ -212,7 +207,8 @@ about face problems. This can even lock up Emacs (if the recursive frame sets single_kboard). Update: the face problems are caused by bugs in term.el, not in multi-tty. The lockup is caused by - single_kboard mode. + single_kboard mode, and is not easily solvable. The best thing to + do is to simply refuse to create a tty frame of type `eterm'. DIARY OF CHANGES ---------------- @@ -520,4 +516,26 @@ (Fixed.) +-- frame-creation-function should always create a frame that is on the + same display as the selected frame. Maybe frame-creation-function + should simply be removed and make-frame changed to do the right + thing. + + (Done, with a nice hack. frame-creation-function is now frame-local.) + +-- Fix C-g on raw ttys. + + (Done. I disabled the interrupt/quit keys on all secondary + terminals, so Emacs sees C-g as normal input. This looks like an + overkill, because emacsclient has extra code to pass SIGINT to + Emacs, so C-g should remain the interrupt/quit key on emacsclient + frames. See the next entry why implementing this distinction would + be a bad idea.) + +-- Make sure C-g goes to the right frame with ttys. This is hard, as + SIGINT doesn't have a tty parameter. :-( + + (Done, the previous change fixes this as a pleasant side effect.) + + ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d