Subject: bug#74866: 29.4; fit-frame-to-window + no vertical scroll bar + changed face height = mess

From: martin rudalics <[email-masked]>
Date: Sat, 14 Dec 2024 18:16:22 +0100

> Martin, any comments?

Looks like an idiosyncrasy of 'set-face-attribute'.  The following seems
to work here.  Don't ask me why.

(defun fit (lin col)
   "Fit some text (LIN lines and COL columns) into a newly created frame."
   (interactive)
   (let ((buf (get-buffer-create "*foo*"))
         (frm (make-frame '((z-group . above) (vertical-scroll-bars . nil)))))
     (with-current-buffer buf
       (erase-buffer)
       (setq mode-line-format '(""))
       (dotimes (_ lin) (insert (format "%s\n" (make-string col ?x))))
       (goto-char (point-min)))
     (with-selected-frame frm
       (switch-to-buffer buf)
       (set-face-attribute 'default nil :height 57)
       (fit-frame-to-buffer))))

martin