GNU bug report logs - #68374
min-width is not correctly treated by buffer-text-pixel-size

Previous Next

Package: emacs;

Reported by: JD Smith <jdtsmith <at> gmail.com>

Date: Wed, 10 Jan 2024 22:24:01 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 68374 <at> debbugs.gnu.org (full text, mbox):

From: JD Smith <jdtsmith <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 68374 <at> debbugs.gnu.org
Subject: Re: bug#68374: min-width is not correctly treated by
 buffer-text-pixel-size
Date: Thu, 11 Jan 2024 14:53:57 -0500
Great, this small patch seems to work.  I’ve enabled glyph checking and will report here if anything untoward comes up.  Should I be keeping track of the *warnings* buffer?

> 
> On Jan 11, 2024, at 5:24 AM, Eli Zaretskii <eliz <at> gnu.org> wrote:
> 
>> From: JD Smith <jdtsmith <at> gmail.com>
>> Date: Wed, 10 Jan 2024 17:22:53 -0500
>> 
>> 
>> When the ‘display min-width property is used on characters in a buffer, window/buffer-text-pixel-size does not include this min-width padding in its calculation of the text's pixel width.  
> 
> For some reason I cannot understand, we were ignoring min-width when
> simulating display (as opposed to actually displaying stuff in a
> window).  I can only assume it's some kind of left-over from when Lars
> was developing this feature, where calls from functions that simulate
> display caused him trouble, so he disabled that and forgot to
> re-enable later.  At least I cannot find any discussion of this, and
> the code which disables min-width in these situations was in the
> initial version that landed on master.
> 
> So please try running with the patch below for a couple of weeks, and
> if it doesn't cause you any trouble, I will install it on master.
> Please configure your builds with --enable-checking='yes,glyphs' for
> the duration of this test period, to activate some run-time tests and
> assertions that will hopefully flag any problems this change might
> have.
> 
> TIA
> 
> diff --git a/src/xdisp.c b/src/xdisp.c
> index 14cf030..29ac4a4 100644
> --- a/src/xdisp.c
> +++ b/src/xdisp.c
> @@ -5487,9 +5487,6 @@ display_min_width (struct it *it, ptrdiff_t bufpos,
>   if (!NILP (it->min_width_property)
>       && !EQ (width_spec, it->min_width_property))
>     {
> -      if (!it->glyph_row)
> -	return;
> -
>       /* When called from display_string (i.e., the mode line),
> 	 we're being called with a string as the object, and we
> 	 may be called with many sub-strings belonging to the same





This bug report was last modified 1 year and 102 days ago.

Previous Next


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