Subject: bug#71085: text-scale-adjust does not adjust margin width

From: Emre Yolcu <[email-masked]>
Date: Mon, 20 May 2024 18:50:28 -0400

As of Emacs 29.3, changing the text size in a buffer using  
text-scale-adjust has no affect on margin width. Since the text displayed  
in the margins has the same height as the text in the buffer, this  
behavior causes the text in the margin to be clipped if we increase the  
text size too much by using text-scale-adjust. Here are the steps to  
confirm:

1. Launch with "emacs -Q".
2. Evaluate:

   (set-window-fringes nil 0)
   (set-window-margins nil 1)

3. Switch to a scratch buffer.
4. Place the cursor, which should be box-shaped by default, on the  
first-column of the buffer.
5. Increase the text size in the buffer by pressing C-x C-= several times.

   Expected behavior: Left margin has exactly the same width as that of the cursor.
   Current behavior: Left margin has width much smaller than that of the cursor.

It also seems to me that there is no way to work around this problem in  
the Elisp layer, because text-scale-mode works by remapping faces in a  
buffer-local manner; however,
- there is no face defined for the margins, and
- it seems that the pixel width of the margins is not determined in a  
buffer-local manner.

Given that {left,right}-margin-width are buffer-local variables, I would  
expect their pixel width to be determined in a buffer-local manner.