Subject: Re: bug#44315: display property :align-to doesn't update with text-scale-mode

From: Eli Zaretskii <[email-masked]>
Date: Fri, 30 Oct 2020 09:31:14 +0200

tags 44315 notabug
severity 44315 wishlist
thanks

> From: Stefan Kangas <[email-masked]>
> Date: Thu, 29 Oct 2020 13:36:30 -0700
> 
> 0. emacs -Q
> 1. Evaluate:
> (progn (insert (make-string 60 ?*) "\n")
>        (insert (propertize " " 'display '(space :align-to 60)))
>        (insert "*\n")
>        (text-scale-increase 1))
> 
> The result is that the first line extends beyond the position of the
> "*" character on the second line.

As it should be.  :align-to interprets the number 60 in terms of the
frame's default font width, see the ELisp manual.  And that doesn't
change with text-scale-increase, whose effect is buffer-local.

> I expect them to line up.

You expected a feature that doesn't exists.  To update the alignment
in these cases, we could:

  1) modify the application which uses :align-to to update the
     property values when the scale changes (e.g., by tracking these
     changes in a pre-redisplay-functions hook); or
  2) invent a new form of value for :align-to that would scale with
     the buffer's text scale, for example '(scale . 123)'

Patches welcome.