Mercurial > emacs
changeset 34416:0d16962724cb
(displayed_window_lines): Handle non-newline-terminated final lines properly.
(Fwindow_text_height): New function (used to be in lisp).
(syms_of_window): Initialize it.
author | Miles Bader <miles@gnu.org> |
---|---|
date | Mon, 11 Dec 2000 07:22:38 +0000 |
parents | ae9bbfff4f90 |
children | fef41c786c7a |
files | src/window.c |
diffstat | 1 files changed, 22 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/window.c Mon Dec 11 05:02:17 2000 +0000 +++ b/src/window.c Mon Dec 11 07:22:38 2000 +0000 @@ -4473,8 +4473,13 @@ if (old_buffer) set_buffer_internal (old_buffer); + bottom_y = it.current_y + it.max_ascent + it.max_descent; + + if (bottom_y > it.current_y && bottom_y < it.last_visible_y) + /* Hit a line without a terminating newline. */ + it.vpos++; + /* Add in empty lines at the bottom of the window. */ - bottom_y = it.current_y + it.max_ascent + it.max_descent; if (bottom_y < height) { struct frame *f = XFRAME (w->frame); @@ -4487,6 +4492,21 @@ } +DEFUN ("window-text-height", Fwindow_text_height, Swindow_text_height, + 0, 1, 0, + "Return the height in lines of the text display area of WINDOW.\n\ +This doesn't include the mode-line (or header-line if any) or any\n\ +partial-height lines in the text display area.") + (window) + Lisp_Object window; +{ + struct window *w = decode_window (window); + int pixel_height = window_box_height (w); + int line_height = pixel_height / CANON_Y_UNIT (XFRAME (w->frame)); + return make_number (line_height); +} + + DEFUN ("move-to-window-line", Fmove_to_window_line, Smove_to_window_line, 1, 1, "P", @@ -5739,6 +5759,7 @@ defsubr (&Sother_window_for_scrolling); defsubr (&Sscroll_other_window); defsubr (&Srecenter); + defsubr (&Swindow_text_height); defsubr (&Smove_to_window_line); defsubr (&Swindow_configuration_p); defsubr (&Swindow_configuration_frame);