That patch works to address make-frame's respect for text-pixels, at least on NS (the only platform I tested).

Now to address the clone-frame implementation to respect pixelwise, and/or as you suggested, perhaps a formal frame parameter resize-pixelwise. If we adopt the change I proposed it could be used in Emacs 30 or 31 since this is a bug (but not a regression). If we go for resize-pixelwise, it'll be 31, right?

On Wed, Dec 11, 2024 at 4:38 AM martin rudalics <rudalics@gmx.at> wrote:
 > Somewhere in the bowels
 > of frame.c, et.al., is an issue where text-pixels behaves differently than
 > set-frame-size which is reliable on NS where make-frame using text-pixels
 > is incorrect by the vertical scroll bar width. GTK it's off, too, but I
 > didn't analyze that further.

If you mean that with

(progn
   (setq frame-resize-pixelwise t)
   (make-frame '((width . (text-pixels . 800)))))

then

(frame-text-width)

evaluates to 784, please try the attached patch.

Thanks, martin