From: Kim F. Storm Date: Mon, 18 Jul 2005 20:59:41 +0000 (+0000) Subject: (redisplay_internal): Only try to hscroll each frame once X-Git-Tag: emacs-pretest-22.0.90~8011 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a61fed91f727fac3a5c295b2e70ffe845275b02c;p=emacs.git (redisplay_internal): Only try to hscroll each frame once to avoid redisplay looping hscrolling back and forth ad infinitum. --- 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) ++redisplaying_p; specbind (Qinhibit_free_realized_faces, Qnil); + { + Lisp_Object tail, frame; + + FOR_EACH_FRAME (tail, frame) + { + struct frame *f = XFRAME (frame); + f->already_hscrolled_p = 0; + } + } + retry: pause = 0; reconsider_clip_changes (w, current_buffer); @@ -10606,8 +10616,12 @@ redisplay_internal (preserve_echo_area) if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f)) { /* See if we have to hscroll. */ - if (hscroll_windows (f->root_window)) - goto retry; + if (!f->already_hscrolled_p) + { + f->already_hscrolled_p = 1; + if (hscroll_windows (f->root_window)) + goto retry; + } /* Prevent various kinds of signals during display update. stdio is not robust about handling