aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Möllmann2024-11-12 09:23:27 +0100
committerGerd Möllmann2024-11-12 14:01:52 +0100
commit37cdf2897ad51f45a228c86f5f12feeb284673df (patch)
treee884d46ecdb300cb25986f2f8e32800d149e8857 /src
parent437ccbe612b377fd5ac492572702978ec75ea0df (diff)
downloademacs-37cdf2897ad51f45a228c86f5f12feeb284673df.tar.gz
emacs-37cdf2897ad51f45a228c86f5f12feeb284673df.zip
Fix a FIXME In redisplay_internal
* src/xdisp.c (redisplay_internal): Compare root frames before setting the frame garbaged.
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index bd3e8f3138d..f9764f82e03 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -17035,19 +17035,22 @@ redisplay_internal (void)
17035 if (face_change) 17035 if (face_change)
17036 windows_or_buffers_changed = 47; 17036 windows_or_buffers_changed = 47;
17037 17037
17038 /* FIXME: Can we do better for tty child frames? It could be 17038 struct frame *previous_frame;
17039 a bit faster when we switch between child frames of the same
17040 root frame. OTOH, it's probably not a frequent use case. */
17041 if ((FRAME_TERMCAP_P (sf) || FRAME_MSDOS_P (sf)) 17039 if ((FRAME_TERMCAP_P (sf) || FRAME_MSDOS_P (sf))
17042 && FRAME_TTY (sf)->previous_frame != sf) 17040 && (previous_frame = FRAME_TTY (sf)->previous_frame,
17041 previous_frame != sf))
17043 { 17042 {
17044 /* Since frames on a single ASCII terminal share the same 17043 if (previous_frame == NULL
17045 display area, displaying a different frame means redisplay 17044 || root_frame (previous_frame) != root_frame (sf))
17046 the whole thing. */ 17045 {
17047 SET_FRAME_GARBAGED (sf); 17046 /* Since frames on a single terminal share the same display
17047 area, displaying a different frame means redisplay the
17048 whole thing. */
17049 SET_FRAME_GARBAGED (sf);
17048#if !defined DOS_NT && !defined HAVE_ANDROID 17050#if !defined DOS_NT && !defined HAVE_ANDROID
17049 set_tty_color_mode (FRAME_TTY (sf), sf); 17051 set_tty_color_mode (FRAME_TTY (sf), sf);
17050#endif 17052#endif
17053 }
17051 FRAME_TTY (sf)->previous_frame = sf; 17054 FRAME_TTY (sf)->previous_frame = sf;
17052 } 17055 }
17053 17056