> It does fix the resizing problem. However, now my entry in > window-size-change-functions doesn't run at all, and so the font size in > the new frame is wrong. > > I'm not sure whether this is a bug, but it might count as a change that > should be called out in NEWS? window-size-change-functions is no longer > guaranteed to be called when frames are simply created. The reason why I have to delay applying 'frame-inhibit-implied-resize' in "normal" use is that people want the number of lines and columns shown by the window manager when they drag frame borders with the mouse match exactly the values specified in 'initial-frame-alist'. OTOH, one reason for implementing 'frame-inhibit-implied-resize' was to make using Emacs with tiling WMs simpler. Hence instead of all the tribulations with running spw/scale-default from 'window-size-change-functions' we should be able to find a better solution. With the patch attached would (defun spw/sway-completing-read (prompt collection &rest optional-args) (let* ((frame-inhibit-implied-resize 'force) (frame (make-frame `((title . "Emacs Sway input") (minibuffer . only) (display . ,(getenv "WAYLAND_DISPLAY")))))) (set-face-attribute 'default frame :height 120) (unwind-protect (with-selected-frame frame (set-window-scroll-bars (minibuffer-window frame) 0 nil 0 nil t) (apply #'completing-read prompt collection optional-args)) (delete-frame frame)))) do what you want? > I'm not sure what you mean "while the function with the same name > returned false" -- there isn't a function called > frame_inhibit_implied_resize, I think? Right. I meant the function frame_inhibit_resize. martin