diff options
| author | Kim F. Storm | 2005-07-18 20:59:41 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2005-07-18 20:59:41 +0000 |
| commit | a61fed91f727fac3a5c295b2e70ffe845275b02c (patch) | |
| tree | 53b1e9a472d312514a8c8379ea6809b3277093cb /src | |
| parent | d3378f02fd3ed53fa1006da01fb6624235877b15 (diff) | |
| download | emacs-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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xdisp.c | 18 |
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 |