# HG changeset patch # User Kim F. Storm # Date 1121720381 0 # Node ID bb9cda6ee0d1ce32924dc16927fb8942c678e687 # Parent def523ae062b799e4c49076f47fa945d6ca25667 (redisplay_internal): Only try to hscroll each frame once to avoid redisplay looping hscrolling back and forth ad infinitum. diff -r def523ae062b -r bb9cda6ee0d1 src/xdisp.c --- a/src/xdisp.c Mon Jul 18 20:59:25 2005 +0000 +++ b/src/xdisp.c Mon Jul 18 20:59:41 2005 +0000 @@ -10172,6 +10172,16 @@ ++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 @@ 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