unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#44315: display property :align-to doesn't update with text-scale-mode
@ 2020-10-29 20:36 Stefan Kangas
  2020-10-30  7:31 ` Eli Zaretskii
  2022-01-02 21:02 ` bug#44315: (no subject) Thomas Hisch
  0 siblings, 2 replies; 3+ messages in thread
From: Stefan Kangas @ 2020-10-29 20:36 UTC (permalink / raw)
  To: 44315

The display property :align-to space doesn't update when I change the
text-scale using `text-scale-increase', `text-scale-decrease' or
`text-scale-adjust', as can be seen here:

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.

I expect them to line up.





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#44315: display property :align-to doesn't update with text-scale-mode
  2020-10-29 20:36 bug#44315: display property :align-to doesn't update with text-scale-mode Stefan Kangas
@ 2020-10-30  7:31 ` Eli Zaretskii
  2022-01-02 21:02 ` bug#44315: (no subject) Thomas Hisch
  1 sibling, 0 replies; 3+ messages in thread
From: Eli Zaretskii @ 2020-10-30  7:31 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 44315

tags 44315 notabug
severity 44315 wishlist
thanks

> From: Stefan Kangas <stefan@marxist.se>
> 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.





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#44315: (no subject)
  2020-10-29 20:36 bug#44315: display property :align-to doesn't update with text-scale-mode Stefan Kangas
  2020-10-30  7:31 ` Eli Zaretskii
@ 2022-01-02 21:02 ` Thomas Hisch
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Hisch @ 2022-01-02 21:02 UTC (permalink / raw)
  To: 44315

 > From: Eli Zaretskii <eliz <at> gnu.org>
 > 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

I think this should be easy to do (at least for tabulated-list-mode).
What we need for this is a scale value, which we could use for scaling
the :align-to value. I tried using the `text-scale-mode-step' (defaults
to 1.2) value but the text is still not aligned when using Stefan's example

(let ((scale-value 1)
       (scale-step 1.2))
   (text-scale-set scale-value)
   (insert "\n" (make-string 60 ?*) "\n")
   (insert (propertize " " 'display `(space :align-to ,(* 60 (expt
scale-step scale-value)))))
   (insert "*\n")
   )

I run the above code with various scale-values (1, 2, 3, 4) and an
empirically determined best scaling factor (scale-step), but this value
doesn't lead to good results for all scale-values.

Do you have a better idea what we could do to map the text-scale to an
:align-to value for the scaled default font?

 >  2) invent a new form of value for :align-to that would scale with
 >     the buffer's text scale, for example '(scale . 123)'

I don't have enough knowledge to comment on whether this would be better
than your first suggestion.

Best regards
Thomas


Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.

This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly prohibited.

IMS Nanofabrication GmbH FN: 208021 p, FB-Gericht: Wiener Neustadt; Sitz: Wolfholzgasse 20-24, 2345, Brunn am Gebirge (Austria),Tel. +43 1 214 48 94; E-Mail: imsoffice@ims.co.at; DVR-Nr: 0374369; www.ims.co.at





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-01-02 21:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-29 20:36 bug#44315: display property :align-to doesn't update with text-scale-mode Stefan Kangas
2020-10-30  7:31 ` Eli Zaretskii
2022-01-02 21:02 ` bug#44315: (no subject) Thomas Hisch

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).