That works for me applied to a recent master. Happy to use the buffer local. It's unlikely to cause trouble if a user doesn't kill it, and we'll understand why if they don't. On Mon, Jan 27, 2025 at 1:01 PM martin rudalics wrote: > > These are the two options on the table? > > > > (let ((frame-inhibit-make-frame-hidden-buffer-check t)) > > (with-current-buffer " *string-pixel-width*" > > (make-frame))) > > ;; could also do this if users want the behavior all the time > > (setq frame-inhibit-make-frame-hidden-buffer-check t) > > > > (with-current-buffer " *string-pixel-width*" > > (setq-local frame-inhibit-make-frame-hidden-buffer-check t) > > (make-frame) > > (kill-local-variable 'frame-inhibit-make-frame-hidden-buffer-check)) > > > > I prefer the former over the latter. > > I prefer these ones > > (let ((frame-inhibit-make-frame-hidden-buffer-check t)) > (with-current-buffer " *string-pixel-width*" > (make-frame))) > > ;; Set the default for all buffers. > (setq-default frame-inhibit-make-frame-hidden-buffer-check t) > > ;; Set the buffer-local value. > (with-current-buffer " *string-pixel-width*" > (setq frame-inhibit-make-frame-hidden-buffer-check t)) > > with the attached patch. > > > It seems harmonious with other > > frame-related controls such as frame-resize-pixelwise > > and frame-inhibit-implied-resize, unless I'm missing some subtlety, > which I > > surely am. > > The subtlety is that a leading space in a buffer name is a buffer-local > property, a property which affects only the buffer wearing that name and > no other buffers. > > 'frame-resize-pixelwise' and 'frame-inhibit-implied-resize' are (or > better should be) frame properties, properties that affect a frame and > consequently all buffers displayed on that frame. > > martin