GNU bug report logs - #43105
(window-body-height) Reporting Too Large of Value

Previous Next

Package: emacs;

Reported by: William Carroll <wpcarro <at> gmail.com>

Date: Sat, 29 Aug 2020 18:07:01 UTC

Severity: normal

Tags: notabug

Done: Stefan Kangas <stefan <at> marxist.se>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: William Carroll <wpcarro <at> gmail.com>
Cc: 43105 <at> debbugs.gnu.org
Subject: bug#43105: (window-body-height) Reporting Too Large of Value
Date: Sat, 29 Aug 2020 21:37:19 +0300
> From: William Carroll <wpcarro <at> gmail.com>
> Date: Sat, 29 Aug 2020 18:10:17 +0100
> 
> I believe `(window-body-height)` does not account for non-zero `line-spacing` amounts. This causes
> `(window-body-height)` in graphical Emacs to report values larger than the number of lines of text that can
> render on the screen.

window-body-height reports the height of the window's body in units of
canonical character height:

  If PIXELWISE is nil, return the largest integer smaller than WINDOW’s
  pixel height divided by the character height of WINDOW’s frame.
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Thus, window-body-height is by design insensitive to factors like
non-default fonts, line-spacing, etc.

> This affects programs like vterm.el and others that rely on `(window-body-height)`. In my particular case,
> when I ran `man` and `less` from vterm.el, it rendered things above the top "fold" of the screen.

Then the bug is in vterm.el: it should use other APIs to get the
dimensions in terms of actual number of lines in the window.  The
function window-body-height works as intended.

Thanks.




This bug report was last modified 4 years and 264 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.