1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-31 09:20:54 -08:00

(Frecenter): If ARG < 0, and on a window system

frame, count in some empty lines when we can't move -ARG lines
down.
This commit is contained in:
Gerd Moellmann 2001-08-07 14:19:26 +00:00
parent e8421604cd
commit d466fa4dcf

View file

@ -4586,18 +4586,26 @@ and redisplay normally--don't erase and redraw the frame.")
{
struct it it;
struct text_pos pt;
int y0, y1, h;
int y0, y1, h, nlines;
SET_TEXT_POS (pt, PT, PT_BYTE);
start_display (&it, w, pt);
y0 = it.current_y;
/* The amount of pixels we have to move hack is the window
/* The amount of pixels we have to move back is the window
height minus what's displayed in the line containing PT,
and the lines below. */
move_it_by_lines (&it, - XINT (arg) - 1, 1);
nlines = - XINT (arg) - 1;
move_it_by_lines (&it, nlines, 1);
y1 = it.current_y - y0;
h = line_bottom_y (&it) - y1;
/* If we can't move down NLINES lines because we hit
the end of the buffer, count in some empty lines. */
if (it.vpos < nlines)
y1 += (nlines - it.vpos) * CANON_Y_UNIT (it.f);
y0 = it.last_visible_y - y1 - h;
start_display (&it, w, pt);