GNU bug report logs - #19194
24.4.50; `window-body-width' is not dynamic relative to font size changes

Previous Next

Package: emacs;

Reported by: Joe Corneli <holtzermann17 <at> gmail.com>

Date: Wed, 26 Nov 2014 13:48:01 UTC

Severity: normal

Tags: notabug

Merged with 20022

Found in versions 24.4.50, 24.4.90

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: martin rudalics <rudalics <at> gmx.at>
To: Joe Corneli <holtzermann17 <at> gmail.com>
Cc: 19194 <at> debbugs.gnu.org
Subject: bug#19194: 24.4.50; `window-body-width' is not dynamic relative to font size changes
Date: Fri, 28 Nov 2014 08:27:30 +0100
>> What is the width of a buffer?  What are em-lenght units?
>
> I mean, the distance (in useful units!) from the left side of the
> buffer,

... a buffer has no "left side" unless you mean the value of how many
columns the buffer has been scrolled horizontally in some window ...

> as displayed within a given window, to the right side of that
> window.  If the buffer is displayed using *a fixed width font*, then one
> useful unit is *columns*, i.e. the number of columns that can be
> displayed before line wrap or continuation kicks in.  However, if the
> buffer is displayed using a variable-width font, then "columns" is *not*
> necessarily a meaningful unit -- as has been pointed out in the earlier
> discussion.  In this case, see below for "ems."
>
> To be clear, the width of the *window* calculated in non-buffer-specific
> units is not generally "useful" for the purpose of measuring the number
> of characters that can be fit, horizontally, into the buffer.

".., into the window" I presume.  Is it that what you want to do: Fit
characters into a window?

> Nevertheless, if the window is displayed using *the default face* at the
> default scale (and if the default font happens to be fixed width!) then
> `window-body-width' does indeed return the number of columns.

The number of columns available for displaying the buffer in the window.

>    «An em is a unit in the field of typography, equal to the currently
>    specified point size. For example, one em in a 16-point typeface is 16
>    points. Therefore, this unit is the same for all typefaces at a given
>    point size. [...] The name "em" was originally a reference to the
>    width of the the capital "M" in the typeface and size being used,
>    which was often the same as the point size.»

So you mean the width of a default face "M" in points here?  No idea how
to get that.  IIRC `nlinum-mode' tries to approximate that somehow.

>> (3) `text-scale-mode-amount' constitutes a request to the display engine
>>       to scale a face height.  What shall we do when our target machine
>>       can't display the character with the requested height and uses, for
>>       example, the nearest available height instead?
>
> Presumably the function should fall back to the height (and
> corresponding scale factor) that is actually used.  This is an edge case
> that I hadn't considered!

Apparently it's possible to get the face actually used, but I don't
understand how.

martin





This bug report was last modified 3 years and 105 days ago.

Previous Next


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