mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-03 02:31:03 -08:00
(redisplay_internal): Only try to hscroll each frame once
to avoid redisplay looping hscrolling back and forth ad infinitum.
This commit is contained in:
parent
d3378f02fd
commit
a61fed91f7
1 changed files with 16 additions and 2 deletions
18
src/xdisp.c
18
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue