diff options
| author | Gerd Möllmann | 2025-12-17 19:52:54 +0100 |
|---|---|---|
| committer | Gerd Möllmann | 2025-12-19 14:12:33 +0100 |
| commit | a6c2ae3a3fb89cd0eedd1b6b4e81fb90ce910f96 (patch) | |
| tree | 04dad4e485eaf0fea215fdc967c7e356290895f6 | |
| parent | cfb4bace26c6104c23698b6d7da243845cc1d911 (diff) | |
| download | emacs-a6c2ae3a3fb89cd0eedd1b6b4e81fb90ce910f96.tar.gz emacs-a6c2ae3a3fb89cd0eedd1b6b4e81fb90ce910f96.zip | |
Don't make tty child frames visible when selected (bug#80020)
* src/frame.c (do_switch_frame): Don't change visibility of tty
child frames.
(Fraise_frame): Doc string fix.
| -rw-r--r-- | src/frame.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/frame.c b/src/frame.c index 1185eacb16c..131f1967424 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -1911,18 +1911,16 @@ do_switch_frame (Lisp_Object frame, int track, int for_deletion, Lisp_Object nor | |||
| 1911 | 1911 | ||
| 1912 | XSETFRAME (top_frame, root_frame (f)); | 1912 | XSETFRAME (top_frame, root_frame (f)); |
| 1913 | tty->top_frame = top_frame; | 1913 | tty->top_frame = top_frame; |
| 1914 | SET_FRAME_VISIBLE (root_frame (f), true); | ||
| 1914 | 1915 | ||
| 1915 | while (p) | 1916 | while (p) |
| 1916 | { | 1917 | { |
| 1917 | /* If FRAME is a child frame, make its ancsetors visible | 1918 | /* If FRAME is a child frame, make it redraw. */ |
| 1918 | and garbage them ... */ | ||
| 1919 | SET_FRAME_VISIBLE (p, true); | ||
| 1920 | SET_FRAME_GARBAGED (p); | 1919 | SET_FRAME_GARBAGED (p); |
| 1921 | p = FRAME_PARENT_FRAME (p); | 1920 | p = FRAME_PARENT_FRAME (p); |
| 1922 | } | 1921 | } |
| 1923 | 1922 | ||
| 1924 | /* ... and FRAME itself too. */ | 1923 | /* ... and FRAME itself too. */ |
| 1925 | SET_FRAME_VISIBLE (f, true); | ||
| 1926 | SET_FRAME_GARBAGED (f); | 1924 | SET_FRAME_GARBAGED (f); |
| 1927 | 1925 | ||
| 1928 | /* FIXME: Why is it correct to set FrameCols/Rows here? */ | 1926 | /* FIXME: Why is it correct to set FrameCols/Rows here? */ |
| @@ -1937,9 +1935,6 @@ do_switch_frame (Lisp_Object frame, int track, int for_deletion, Lisp_Object nor | |||
| 1937 | FrameRows (tty) = FRAME_TOTAL_LINES (f); | 1935 | FrameRows (tty) = FRAME_TOTAL_LINES (f); |
| 1938 | } | 1936 | } |
| 1939 | } | 1937 | } |
| 1940 | else | ||
| 1941 | /* Should be covered by the condition above. */ | ||
| 1942 | SET_FRAME_VISIBLE (f, true); | ||
| 1943 | } | 1938 | } |
| 1944 | 1939 | ||
| 1945 | sf->select_mini_window_flag = MINI_WINDOW_P (XWINDOW (sf->selected_window)); | 1940 | sf->select_mini_window_flag = MINI_WINDOW_P (XWINDOW (sf->selected_window)); |
| @@ -3530,9 +3525,7 @@ DEFUN ("visible-frame-list", Fvisible_frame_list, Svisible_frame_list, | |||
| 3530 | DEFUN ("raise-frame", Fraise_frame, Sraise_frame, 0, 1, "", | 3525 | DEFUN ("raise-frame", Fraise_frame, Sraise_frame, 0, 1, "", |
| 3531 | doc: /* Bring FRAME to the front, so it occludes any frames it overlaps. | 3526 | doc: /* Bring FRAME to the front, so it occludes any frames it overlaps. |
| 3532 | If FRAME is invisible or iconified, make it visible. | 3527 | If FRAME is invisible or iconified, make it visible. |
| 3533 | If you don't specify a frame, the selected frame is used. | 3528 | If you don't specify a frame, the selected frame is used. */) |
| 3534 | If Emacs is displaying on an ordinary terminal or some other device which | ||
| 3535 | doesn't support multiple overlapping frames, this function selects FRAME. */) | ||
| 3536 | (Lisp_Object frame) | 3529 | (Lisp_Object frame) |
| 3537 | { | 3530 | { |
| 3538 | struct frame *f = decode_live_frame (frame); | 3531 | struct frame *f = decode_live_frame (frame); |