Mercurial > emacs
changeset 50744:13cae05372c0
(move_it_vertically_backward): Do the final big else even if nlines is 0.
(redisplay_internal): Finish the per-frame loop
even if redisplay is suspended by input.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 30 Apr 2003 12:03:53 +0000 |
parents | 03920300bdbf |
children | fedd03de0f46 |
files | src/xdisp.c |
diffstat | 1 files changed, 11 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xdisp.c Wed Apr 30 09:23:02 2003 +0000 +++ b/src/xdisp.c Wed Apr 30 12:03:53 2003 +0000 @@ -5823,10 +5823,14 @@ move_it_to (&it2, start_pos, -1, -1, -1, MOVE_TO_POS); xassert (IT_CHARPOS (*it) >= BEGV); + /* H is the actual vertical distance from the position in *IT + and the starting position. */ h = it2.current_y - it->current_y; + /* NLINES is the distance in number of lines. */ nlines = it2.vpos - it->vpos; - /* Correct IT's y and vpos position. */ + /* Correct IT's y and vpos position + so that they are relative to the starting point. */ it->vpos -= nlines; it->current_y -= h; @@ -5838,10 +5842,10 @@ move_it_by_lines (it, nlines, 1); xassert (IT_CHARPOS (*it) <= start_pos); } - else if (nlines) - { - /* The y-position we try to reach. Note that h has been - subtracted in front of the if-statement. */ + else + { + /* The y-position we try to reach, relative to *IT. + Note that H has been subtracted in front of the if-statement. */ int target_y = it->current_y + h - dy; int y0 = it3.current_y; int y1 = line_bottom_y (&it3); @@ -9999,8 +10003,10 @@ /* Update the display. */ set_window_update_flags (XWINDOW (f->root_window), 1); pause |= update_frame (f, 0, 0); +#if 0 /* Exiting the loop can leave the wrong value for buffer_shared. */ if (pause) break; +#endif if (n == size) {