aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim F. Storm2005-07-18 20:59:41 +0000
committerKim F. Storm2005-07-18 20:59:41 +0000
commita61fed91f727fac3a5c295b2e70ffe845275b02c (patch)
tree53b1e9a472d312514a8c8379ea6809b3277093cb
parentd3378f02fd3ed53fa1006da01fb6624235877b15 (diff)
downloademacs-a61fed91f727fac3a5c295b2e70ffe845275b02c.tar.gz
emacs-a61fed91f727fac3a5c295b2e70ffe845275b02c.zip
(redisplay_internal): Only try to hscroll each frame once
to avoid redisplay looping hscrolling back and forth ad infinitum.
-rw-r--r--src/xdisp.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 807cbc2b793..09cf8a7f5de 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -10172,6 +10172,16 @@ redisplay_internal (preserve_echo_area)
10172 ++redisplaying_p; 10172 ++redisplaying_p;
10173 specbind (Qinhibit_free_realized_faces, Qnil); 10173 specbind (Qinhibit_free_realized_faces, Qnil);
10174 10174
10175 {
10176 Lisp_Object tail, frame;
10177
10178 FOR_EACH_FRAME (tail, frame)
10179 {
10180 struct frame *f = XFRAME (frame);
10181 f->already_hscrolled_p = 0;
10182 }
10183 }
10184
10175 retry: 10185 retry:
10176 pause = 0; 10186 pause = 0;
10177 reconsider_clip_changes (w, current_buffer); 10187 reconsider_clip_changes (w, current_buffer);
@@ -10606,8 +10616,12 @@ redisplay_internal (preserve_echo_area)
10606 if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f)) 10616 if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f))
10607 { 10617 {
10608 /* See if we have to hscroll. */ 10618 /* See if we have to hscroll. */
10609 if (hscroll_windows (f->root_window)) 10619 if (!f->already_hscrolled_p)
10610 goto retry; 10620 {
10621 f->already_hscrolled_p = 1;
10622 if (hscroll_windows (f->root_window))
10623 goto retry;
10624 }
10611 10625
10612 /* Prevent various kinds of signals during display 10626 /* Prevent various kinds of signals during display
10613 update. stdio is not robust about handling 10627 update. stdio is not robust about handling